导出的 eclipse-plugin 无法执行 python 脚本

我希望有人可以帮助我了解如何解决我的问题:


导出的 eclipse-plugin 到 python.exe 和调用的 python 脚本 (test.py) 的路径错误。因此,当插件正常调用脚本时,它会抛出错误。


有没有一种方法可以将 python 和相应的 python 文件与 .jar 一起编译,或者是否有另一种方法可以正确地做到这一点?


我创建了一个通过 ProcessBuilder 类调用 python 脚本的 eclipse 插件。python 脚本导入 lxml 并对两个 xml 文件执行一些合并步骤。当我将插件作为“Eclipse 应用程序”启动时,脚本被执行并且一切正常。当我将插件导出为 .jar 文件时,我无法调用 python 脚本,因为它将路径附加到 python.exe 和 .jar 文件中的 test.py(例如“plugin.jar/test.py”)。


// Init the processBuilder

ProcessBuilder procBuilder = new ProcessBuilder(

absolute/path/to/venv/Scripts/python.exe", // Possible workaround: "python",

absolute/path/to/test.py, 

arg1, arg2);

绝对路径是这样的:“C:/Users/user/path/to/project/venv/Scripts/python.exe”(它是通过“virtualenv venv”创建的 virtualenv)


如上所述,发生以下错误:1)当插件应调用 test.py 时找不到“C:/Users/user/eclipse/plugins/plugin.jar_100/src/utils/test.py” 2)java。 io.IOExeption: cannot run program "C:\absolute\path\eclipse\plugins\plugin_133.jar\venv\Scripts\python.exe": CreateProcess error=2, 系统找不到指定的文件。


MM们
浏览 112回答 1
1回答

BIG阳

导出的插件通常会将所有内容打包到一个 jar 中。jar 中的对象不是文件,您不能使用像 ProcessBuilder 这样需要文件的东西来访问它们。你可以包括Eclipse-BundleShape: dir在用于插件的 MANIFEST.MF 中将插件构建为目录而不是 jar。内容将成为普通文件。如果插件包含在“功能”中,则“安装后解压插件存档”选项会覆盖 manifest.mf 设置。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java