4

ローカル マシンでプロジェクトを実行しようとしていました。

Mac 10.6.2 でこのプロジェクトの実行中のインスタンスから取得したこの jnilib ファイルを読み込もうとしました。

System.load(lib.getAbsolutePath());

次に、この例外がスローされました:

java.lang.UnsatisfiedLinkError, mach-o but wrong architecture

ファイルコマンドでjnilibをチェックしました:

libScreenMatchProxy.jnilib: Mach-O dynamically linked shared library i386

これは、jnilib ファイルが 32 ビットでコンパイルされているためだと思いますが、Mac10.6 に付属の Java は 64 ビットです。そこで、Java Preference に移動し、最初に 32 ビットを使用するように Java を設定します。しかし、うまくいきませんでした。

前述のように、この jnilib ファイルは、私の Mac で実行中のプロジェクトのインスタンスからコピーされているため、動作するはずです。インストールされたアプリケーションでは機能するのに、Eclipse では機能しない理由がわかりません。

4

1 に答える 1

3

実行構成からの VM 引数に「-d32」を追加すると、Eclipse は Java を 32 ビット モードで呼び出すようになります。これでこの問題は解決します。

于 2010-02-18T08:09:20.380 に答える