LuaJava 是一种将 Lua 代码与 Java 代码互操作的桥接器。它允许 Lua 代码调用 Java 类和方法,反之亦然。Eclipse 是一个开源的集成开发环境,广泛用于 Java 开发。

我终于成功在 OSX 上构建了 LuaJava,但现在在 Eclipse 中使用它时遇到了问题。我将 jnilib 放在系统路径中,当我转到构建它的目录时,可以这样运行 Console:

$ java -cp "luajava-1.1.jar" org.keplerproject.luajava.Console
API Lua Java - console mode.
> print("Hello World!")
Hello World!
> exit
$

所以我猜这意味着它已经正确构建和安装了。我使用 Java Build Path 属性窗口中的“添加外部 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");
    }
}

原文链接 https://stackoverflow.com/questions/9609365

点赞
stackoverflow用户236136
stackoverflow用户236136

原文:

It turns out that it doesn't need to be in the system path, but is needs to be in the JVM Library folder.

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/

翻译后:

事实证明,该程序无需出现在系统路径中,但它需要在 JVM 库文件夹中。

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/
2012-03-07 21:44:05