8

デスクトップJavaアプリケーションを構築しています。いくつかの低レベルの作業にサードパーティのフレームワークを使用します(Cであり、私はJNAを使用しました)。

私のWindowsマシンでは、これを実行Native.loadLibrary("EDSDK.dll", EdSdkLibrary.class, options);すると完全に機能します。Macで私がやろうとすると、次のようNative.loadLibrary("EDSDK.framework", EdSdkLibrary.class, options);UnsatisfiedLinkError言われました。mach-o, but wrong architecture

私のJava7バージョンは64ビットで、フレームワークは32ビットベースです。Java6を含む別のMacで、Javaを32ビットモードで実行すると、アプリケーションは正常に動作します。これは、スローされた例外が32ビットの非互換性によるものであり、32ビットのみを使用する必要があることを確認します(これは明らかです)。

これは苛立たしい部分です。Java7では、-d32オプションが機能せず、OracleはJava7を32ビットで提供しなくなりました。サードパーティのフレームワークを使用できるように、Java 7を32ビットで実行するにはどうすればよいですか?JDKを開きますか?または、Java6を使用して32ビットモードで使用します。しかし、OracleはMac用のJava6を提供しなくなりました。

他の選択肢はありますか?

4

1 に答える 1

2

32ビットJVMを含むAppleJava6JDKをダウンロードできます。しかし、Java 6の将来のセキュリティ更新の方法がたくさんあるとは思えないので、ネイティブフレームワークの64ビットバージョンを入手して、それをOracleJava7で使用する方がよいでしょう。

于 2013-02-27T12:22:34.723 に答える