gpt4 book ai didi

使用 Jython 脚本的 Java 代码

转载 作者:太空宇宙 更新时间:2023-11-04 11:27:21 24 4
gpt4 key购买 nike

我正在开发一个 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 的行为。请参阅Bundling python files inside jar for access via jython了解详情。

关于使用 Jython 脚本的 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44193561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com