我希望有人可以幫助我了解如何解決我的問題:導出的 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 設置。
添加回答
舉報
0/150
提交
取消