デスクトップ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を提供しなくなりました。
他の選択肢はありますか?