为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MM们 2023-04-13 14:05:57
我希望有人可以帮助我了解如何解决我的问题:导出的 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 processBuilderProcessBuilder 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, 系统找不到指定的文件。
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

导出的插件通常会将所有内容打包到一个 jar 中。jar 中的对象不是文件,您不能使用像 ProcessBuilder 这样需要文件的东西来访问它们。

你可以包括

Eclipse-BundleShape: dir

在用于插件的 MANIFEST.MF 中将插件构建为目录而不是 jar。内容将成为普通文件。

如果插件包含在“功能”中,则“安装后解压插件存档”选项会覆盖 manifest.mf 设置。


查看完整回答
反对 回复 2023-04-13
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信