web-dev-qa-db-ja.com

Mac OS、JDK1.7(および1.8)にはJNI_CreateJavaVMシンボルが含まれていません

Mac OSでJDK 1.7を介してEclipse Keplerを実行する必要があります(これはPyDevプラグインに必要です)。

問題は、1.7 jdkをインストールし、それを使用するようにEclipse.iniを構成したにもかかわらず、エラーが発生することです。

JVM共有ライブラリ「/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin../jre/lib/server/libjvm.dylib」には、JNI_CreateJavaVMシンボルが含まれていません。

[〜#〜] update [〜#〜]ここの賢い人々 https://github.com/joeferner/node-Java/ issues/9 以下のようにinfo.plistファイルのJVMCapabilitiesにJNIを追加するだけで十分だと主張します

<key>JVMCapabilities</key>
   <string>JNI</string>

しかし、私はそれを試しましたが、私の場合はうまくいきません

28
Sindico

Eclipseアイコンを右クリックして、「パッケージの内容を表示」を選択します。コンテンツディレクトリ内には、「Info.plist」というファイルがあります。これが見つかるまでファイルの一番下までスクロールします

<key>Eclipse</key>
    <array>
        <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
                or add a VM found via $/usr/libexec/Java_home -V
          <string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/Java</string>
          <string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/Java</string>
        -->

コメントアウトされたセクションに注目してください。 jdkパス宣言をコメントセクションの外に移動します。今、このように見えるはずです。

<key>Eclipse</key>
    <array>
      <string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/Java</string>
        <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
                or add a VM found via $/usr/libexec/Java_home -V
          <string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/Java</string>
        -->

最後のステップでは、/ Library/Java/JavaVirtualMachinesを参照し、そこにあるjdkパッケージ名を確認します。上記のコマンドのjdkバージョンをそれで置き換えます。

/Library/Java/JavaVirtualMachines/{your_jdk_package_name}/Contents/Home/bin/Java

オプション:一部のマシンでは、これをすべて行った後にFinderを閉じなければならない場合があります。Eclipseフォルダーに移動し、Eclipseを再度クリックして機能させます。

49
Shan

上記の両方のタスクを実行した後も同じエラーメッセージが表示されたままで立ち往生している可能性のある人のために:64ビットEclipseをダウンロードしたことは確かでしたが、32ビットバージョンであることがわかりました。 64ビットをダウンロードした後、すべてが機能しました!

15
tobylaroni

Eclipse Lunaが完全に動作していたため、Java 8(およびjre、jdkなどの更新)にアップグレードしようとしたときにこのエラーが発生し始めました。シャンのソリューションはうまくいきませんでした。最新のEclipseをダウンロードしてインストールしました。

0
aalosious