让这个库在我的OSX安装上运行时,我遇到了很多问题。特别是,我想在Java1.6VM上使用它,但在我编译它之后,我得到了以下结果:
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)我正在运行OSX 10.5.8和Lua 5.1.4,我也已经将我的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/我做错了什么?我注意到当我使用Java1.5时,一切都运行得很好。除了我不想要1.5,我想要1.6。
发布于 2010-01-14 06:24:37
这可能是一个线索,来自jnlua on luaforge,第7节。构建原生库
请注意,当前不支持使用LuaBinaries构建macos64平台。这是因为Mac上的Java6只有64位,而LuaBinaries只为该平台提供了32位的库。
我找不到与此有关的任何其他直接参考,但考虑到您所描述的症状,这似乎是一个合理的解释。LuaJava使用LuaBinaries。
发布于 2010-04-15 11:18:17
问题是苹果在Leopard上只发布了Java6的64位版本,这意味着所有的.jnilib文件(和相关的依赖项)都需要包含64位。Leopard上的Java5有32位和64位版本。更令人困惑的是,Java 具有 32位和64位版本的Java6。
所以,总结一下:
发布于 2010-04-26 02:58:48
今天早上,我按照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文件添加到路径中,但是仍然需要添加库。
https://stackoverflow.com/questions/2024702
复制相似问题