在OSX 10.5上使用LuaJava的链接器错误

时间:2010-01-08 00:26:42

标签: java macos lua luajava

我在使用这个库来处理我的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 个答案:

答案 0 :(得分:0)

这可能是jnlua on luaforge第7节的线索。构建本机库

  

请注意为macos64构建   目前有LuaBinaries的平台   不支持。这是由于Java 6   在Mac OS上只有64位和   LuaBinaries只提供32位   该平台的图书馆。

我找不到任何其他直接参考,但考虑到你描述的症状,这似乎是一个似是而非的解释。 LuaJava使用LuaBinaries。

答案 1 :(得分:0)

问题是Apple只在Leopard上发布了64位版本的Java 6,这意味着所有.jnilib文件(和相关的依赖项)都需要/包含64位。 Leopard上的Java 5具有32位和64位版本。更令人困惑的是, Snow Leopard 具有 32和64位版本的Java 6。

所以,总结一下:

  • 豹:
    • Java 5:32&amp; 64
    • Java 6:64
  • 雪豹:
    • Java 6:32&amp; 64

答案 2 :(得分:0)

我今天上午按照Joe Huges的这些旧指示开始工作:http://retrovirus.com/incr/2005/08/building-luajava/(需要进行一些细微的修改)。我在2007年份(32位)MBP上使用10.6。

您描述的问题是通过将libluajava-1.1.jnilib Java库移动到/ Library / Java / Extensions /文件夹来解决的。 -cp“luajava-1.1.jar”标志将jar文件添加到路径中,但仍需要添加库。

答案 3 :(得分:0)

您需要将luajava.jnilib文件放在/System/Library/Frameworks/JavaVM.framework/Library目录中。