- PR -

javaコマンドの-serverオプションについて

1
投稿者投稿内容
ピンクの恐竜
常連さん
会議室デビュー日: 2005/02/01
投稿数: 42
投稿日時: 2005-02-20 19:36
いつも勉強させていただいております。
ピンクの恐竜と申します。

今javaコマンドの-serverオプションでわからないことがあります。
あるアプリケーションを実行する時に
コード:
java -server <アプリケーション>


で実行すると、

Error: no `server' JVM at `C:\Program Files\Java\j2re1.4.2_04\bin\server\jvm.dll'.

と怒られてしまいます。
JAVA_HOMEの環境変数は"C:\j2sdk1.4.2_04"となってます。

%JAVA_HOME%\jre\bin\server\jvm.dllは存在するので、
このファイルを上記パスに置き、同じコマンドをしたところ、
正常にアプリケーションは起動しました。

上記から推測するとjavaコマンドをたたいた時に、
環境変数に設定されているJAVA_HOME配下のjreのdllファイルを見に行かないで、
Program Files配下のjreのdllファイルを見に行っていると思われます。

この動きは正しいのでしょうか?
それとも私の環境変数の設定の仕方が悪いのでしょうか?

よろしくお願いします。
takamaro
大ベテラン
会議室デビュー日: 2004/10/12
投稿数: 100
投稿日時: 2005-02-20 20:15
引用:

ピンクの恐竜さんの書き込み (2005-02-20 19:36) より:

この動きは正しいのでしょうか?
それとも私の環境変数の設定の仕方が悪いのでしょうか?


正しい(?)動きでしょうね。
要するにピンクの恐竜さんの環境が実際に参照しているjava.exeは、
windows\system32\java.exe だという事だと思われます。
何故そうなるかは、環境設定で「JAVA_HOME」よりも前にsystem32
フォルダ配下へのパスが記述されているからだと思われます。
で、そのsystem32\java.exe が、間接的にProgramFilesにある
java.exeを呼び出していて、結果エラーになったと。。。
対処法は「JAVA_HOME」を windows\system32 よりも前で宣言するか、
system32\java.exe の呼び出すJREを変更させるかでしょうね。
ま、その辺りの事には詳しくはないので、ググって調べてみてください。
ピンクの恐竜
常連さん
会議室デビュー日: 2005/02/01
投稿数: 42
投稿日時: 2005-02-20 21:14
早速の返信ありがとうございます。

takamaroさんのおっしゃる通りでした。
system32よりも前に記述すればうまくJAVA_HOME配下のdllファイルを見てくれました。
ありがとうございます。

それにしてもsystem32配下にjava.exeがあるなんて全く知りませんでした。
system32がどういうフォルダなのかも全く知らない状態なので
これを機に少し調べて見たいと思います。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)