5

このライブラリを OSX インストールで動作させるのに多くの問題があります。特に、Java 1.6 VM で使用したいのですが、コンパイルすると次のようになります。

java -cp "luajava-1.1.jar" org.keplerproject.luajava.Console
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/daniel/src/luajava- 1.1/libluajava-1.1.jnilib: 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1739)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at org.keplerproject.luajava.LuaState.<clinit>(LuaState.java:92)
    at org.keplerproject.luajava.LuaStateFactory.newLuaState(LuaStateFactory.java:59)
    at org.keplerproject.luajava.Console.main(Console.java:49)

Lua 5.1.4 で OSX 10.5.8 を実行しています。また、OSX のデフォルト VM を 1.6.0 に変更しました。

/System/Library/Frameworks/JavaVM.framework/Home -> Versions/1.6.0/Home/
/System/Library/Frameworks/JavaVM.framework/Versions/Current -> 1.6.0/
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> 1.6.0/

私は何を間違っていますか?Java 1.5 を使用すると、すべてがうまく機能することに気付きます。1.5 は必要ありませんが、1.6 が必要です。

4

4 に答える 4

0

問題は、AppleがLeopardで64ビットバージョンのJava 6のみをリリースしたことです。つまり、すべての.jnilibファイル(および関連する依存関係)は64ビットである必要があります。Leopard上のJava5には、32ビットバージョンと64ビットバージョンの両方があります。さらに紛らわしいのは、 SnowLeopardには32ビットバージョンと64ビットバージョンの両方のJava6があるという事実です。

要約すると、次のようになります。

  • ヒョウ:
    • Java 5:32&64
    • Java 6:64
  • ユキヒョウ:
    • Java 6:32&64
于 2010-04-15T03:18:17.387 に答える
0

/System/Library/Frameworks/JavaVM.framework/Library ディレクトリに luajava.jnilib ファイルを配置する必要があります。

于 2012-03-08T20:43:08.467 に答える
0

これはluaforge の jnluaのセクション 7.ネイティブ ライブラリの構築からの手がかりになる可能性があります。

LuaBinaries を使用した macos64 プラットフォームのビルドは現在サポートされていないことに注意してください。これは、Mac OS 上の Java 6 が 64 ビットのみであり、LuaBinaries がそのプラットフォームに 32 ビット ライブラリのみを提供しているためです。

これに関する他の直接的な参照は見つかりませんでしたが、あなたが説明した症状を考えると、もっともらしい説明のようです. LuaJava は LuaBinaries を使用します。

于 2010-01-13T22:24:37.283 に答える
0

Joe Hugesによるこれらの古い指示に従って、今朝動作するようになりました。2007 年のビンテージ (32 ビット) MBP で 10.6 を使用しています。

あなたが説明した問題は、libluajava-1.1.jnilib Java ライブラリを /Library/Java/Extensions/ フォルダーに移動することで解決されました。-cp "luajava-1.1.jar" フラグを指定すると、jar ファイルがパスに追加されますが、ライブラリを追加する必要があります。

于 2010-04-25T18:58:47.587 に答える