繁体   English   中英

使用Jython脚本的Java代码

[英]Java Code with Jython Script

我正在开发一个Java应用程序,我在其中编写了一个Jython脚本来执行任务。代码工作正常,Jython脚本在通过Eclipse IDE执行时执行。 但是当我将Java应用程序导出到.jar文件时,Jython脚本不会运行。

这是我在Eclipse IDE中遵循的目录结构:

application.jar
   |-- com
       |--example

           |-- package1
             |-- Function2.Java
             |-- pre_myAction.py

           |-- package2
             |-- Function1.Java

我试图通过以下方式从Function1.java调用script_function:

PythonInterpreter interp = new PythonInterpreter();
interp.execfile(".//com//example//pre_myAction.py");
String funcName = "function1";
PyObject someFunc = interp.get(funcName);

if (someFunc == null) {
  throw new Exception("Could not find Python function: " + funcName);
}

try {
   interp.set("DataMap", dataMap);
   someFunc.__call__(new PyString(file1));
  } catch (PyException e1) {
    LOGGER.log(Level.SEVERE, e1.getMessage());
}

interp.cleanup();
interp.close();

当我尝试从命令提示符执行jar时,我收到此错误:

File not found -//com//example//pre_myAction.py

并且相同的代码在Eclipse IDE中执行而没有任何错误。

任何人都可以提供有关如何在jar文件中执行jython脚本的解决方案或建议。

快速浏览Jython代码,看起来像PythonInterpreter.execfile(String)将在文件系统中查找文件,而不是JAR。 您可以尝试使用Class.getResourceAsStream并使用方法的InputStream版本进行查找。

看起来Jython会自动从JAR的根目录加载文件,从而提供镜像CPython的行为。 有关详细信息,请参阅在jar中捆绑python文件以通过jython进行访问

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM