問題
到目前為止,Eclipse 已將 IvyDE 托管庫匯出到一個可運行的 JAR 檔案中,但我不確定它為什么最近停止作業。
怎么了?我該如何解決這個問題?
常春藤.xml
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation= "http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="com.example" module="eclipse-ivyde-export-issue" />
<dependencies>
<dependency org="org.json" name="json" rev="20220320"/>
</dependencies>
</ivy-module>
重現問題的步驟
克隆專案:
git clone [email protected]:haba713/eclipse-ivyde-export-issue.git將克隆的專案匯入 Eclipse 作業區。
右鍵單擊
src/com.example/Main.java專案樹中的類并選擇 Run as → Java Application。查看輸出:{"key":"value"}.右鍵單擊專案并選擇匯出 → Java → 可運行 JAR 檔案。
為類和庫處理選擇啟動配置
com.example.Main: [x] 將所需的庫提取到生成的 JAR 中。單擊完成。嘗試運行生成的 JAR 檔案:
$ java -jar eclipse-ivyde-export-issue.jar Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject at com.example.Main.main(Main.java:8) Caused by: java.lang.ClassNotFoundException: org.json.JSONObject at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 1 more
環境
- 日食 2022-06 M2 (4.24.0 M2)
- IvyDE 2.2.0.final-201311091524-RELEASE
- OpenJDK 17.0.3 7-Debian-1deb11u1
- Debian GNU/Linux 11(靶心)
帶有 OpenJDK 8 的 Eclipse 2020-06 作業正常
我使用 Eclipse 2020-06 和 OpenJDK 8 測驗了同一個專案。JAR 匯出給出警告“此操作重新打包參考的庫”,并且 IvyDE 托管類包含在生成的 JAR 檔案中。
(該問題也發布到Eclipse 社區論壇。)
uj5u.com熱心網友回復:
解決方法
我認為這是一個 JDT 或 IvyDE 錯誤。解決方法是使用 JRE System Library 1.8 而不是 17。有關更多資訊,請參閱README 末尾的注釋。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/493615.html
上一篇:2022-06年EclipseMarkdown編輯器發生了什么?
下一篇:如何從pdf的特定部分提取文本
