无法让 Janino 编译器编译与 jar 相同目录中的文件

问题描述 投票:0回答:1

我正在使用 Janino 在运行时编译 java 文件以在程序中使用。我正在使用 netbeans,当我将目录放入 src 文件夹时,我只能让它在运行时编译。如果我尝试使用相对路径编译它,它将无法工作。

我正在遵循 http://docs.codehaus.org/display/JANINO/Advanced#Advanced-compiler

的示例

当我将要在运行时编译的文件放在 src 目录中名为 script 的文件夹中时,效果如下:

        String engineClass = "DefaultEngine"; //name of engine class
        String guiClass = "DefaultGUI"; // name of gui class
        ClassLoader cl = new JavaSourceClassLoader(
                this.getClass().getClassLoader(),
                new File[]{new File("scripts")},
                (String) null,
                DebuggingInformation.NONE);
        AbstractEngine engine = (AbstractEngine) cl.loadClass(engineClass).newInstance();
        AbstractGUI gui = (AbstractGUI) cl.loadClass(guiClass).newInstance();

如果我将脚本文件夹放在与 jar 相同的目录中,则不起作用。 只有当我使用 src 目录中的脚本文件夹从 IDE 内部运行项目时,我才能让它工作。

当我尝试使用与 jar 文件位于同一文件夹中的脚本文件夹运行项目时,它会在

AbstractEngine engine = (AbstractEngine) cl.loadClass(engineClass).newInstance();
线

java janino
1个回答
0
投票

我想通了。我必须将

new File(System.getProperty("user.dir")+"/scripts")
作为路径

© www.soinside.com 2019 - 2024. All rights reserved.