私は同様の問題に遭遇しました。そこでは、Eclipseが現在の電流%JAVA_HOME%
を使用せずpath
、代わりに古いバージョンを使用していました。-vm
ドキュメントは、iniファイルでnoが指定されている場合、eclipseが共有ライブラリを検索することを指摘しています。jvm.dll
これは、Windows Javaインストーラーを使用するときにインストールされるキーの下のレジストリに表示されますHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment
(キーは64ビットに基づいて少し異なる場合があります) vs 32ビット、ただし検索jvm.dll
)。path
以前にこの共有ライブラリを見つけていたので%JAVA_HOME%/bin
、古いバージョンを使用していました。
他の人が述べているように、これに対処する最も簡単な方法は、eclipse.ini
ファイルで使用する特定のvmを指定することです。path
またはeclipse.ini
ファイル のどこにも指定されていないのに、古いバージョンがまだどのように使用されているのか理解できなかったため、これを書いています。
以下のドキュメントへのリンクを参照してください:
http: //help.eclipse.org/kepler/topic/org.eclipse.platform.doc.isv/reference/misc/launcher.html?cp = 2_1_3_1
VMを検索し、JNIInvocationAPIを使用する
Eclipseランチャーは、Java Native Interface Invocation APIを使用して、EclipseプロセスでJavaVMをロードできます。ランチャーは、以前のバージョンのEclipseと同じように、別のプロセスでJavaVMを起動することができます。使用される方法は、VMがどのように検出されたかによって異なります。
-vmが指定されていません
-vmが指定されていない場合、ランチャーは最初にeclipseのルートのjreディレクトリで仮想マシンを検索し、次に検索パスで仮想マシンを検索します。いずれかの場所でJavaが見つかった場合、ランチャーはそのJava実行可能ファイルに関連するjvm共有ライブラリ(Windowsではjvm.dll、* nixプラットフォームではlibjvm.so)を探します。
- jvm共有ライブラリが見つかった場合、ランチャーはそれをロードし、JNI呼び出しAPIを使用してvmを開始します。
- jvm共有ライブラリが見つからない場合、ランチャーはjavaランチャーを実行して、新しいプロセスでvmを開始します。
-コマンドラインまたはeclipse.iniで指定されたvm
Eclipseは、使用する仮想マシンを示すために「-vm」で開始できます。の値にはいくつかの可能性があります:
- directory: はディレクトリです。そのディレクトリで次のものを探します。
- (1)Javaランチャーまたは
- (2)jvm共有ライブラリ。
jvm共有ライブラリが見つかった場合は、JNI呼び出しを使用します。ランチャーが見つかった場合、ランチャーに関連する既知の場所でjvmライブラリを見つけようとします。見つかった場合は、JNI呼び出しを使用します。jvmライブラリが見つからない場合は、新しいプロセスでjavaを実行します。