我终于设法让LuaJava在OSX上构建,现在我在Eclipse中使用它时遇到了麻烦。我将jnilib放在我的系统路径中,当我进入我构建它的目录时,我可以像这样运行控制台:
$ java -cp "luajava-1.1.jar" org.keplerproject.luajava.Console
API Lua Java - console mode.
> print("Hello World!")
Hello World!
> exit
$
所以我猜这意味着它是正确构建和安装的。我使用Java Build Path属性窗口中的“Add External Jar”将jar添加到我的项目中。但是当我尝试使用它时,我收到了这个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: ScriptEngineSample
Caused by: java.lang.ClassNotFoundException: ScriptEngineSample
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
以下是我的所有代码:
LuaWarrior.java
public class LuaWarrior
{
public static void main(String[] args)
{
new Game().start();
}
}
Game.java
import org.keplerproject.luajava.LuaState;
import org.keplerproject.luajava.LuaStateFactory;
public class Game
{
private LuaState _lua;
public Game()
{
_lua = LuaStateFactory.newLuaState();
_lua.openLibs();
}
public void start()
{
_lua.LdoFile("scripts/hello.lua");
}
}
答案 0 :(得分:0)
事实证明,它不需要位于系统路径中,但需要位于JVM Library文件夹中。
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/