Eclipse 22-09(JDK19运行)构建路径未知错误致编译失败
问题:Eclipse构建JDK17模块项目报错排查
我用运行在JDK19上的Eclipse 22-09构建基于JDK17的Java模块应用,命令行编译完全正常:
javac src/module-info.java src/xyz/arwhite/pki/*.java --add-exports java.base/sun.security.tools.keytool=pkix --add-exports java.base/sun.security.x509=pkix --add-exports java.base/sun.security.provider=pkix --add-exports java.base/sun.security.util=pkix --add-exports java.base/sun.security.pkcs10=pkix --add-exports java.base/sun.security.pkcs12=pkix --add-exports java.base/sun.security.pkcs=pkix --add-exports jdk.httpserver/com.sun.net.httpserver=pkix -d bin
但Eclipse始终报两个错误:
- 资源pkix,类型为构建路径问题;
- 资源pkix,类型为未知类型Java错误。
项目构建路径已关联正确的JDK17,也添加了命令行里对应的额外导出项,构建路径本身无错误提示。求可行的调试设置或日志方法排查Eclipse的问题。
附项目的module-info.java代码:
module pkix { requires java.base; requires java.net.http; requires jdk.httpserver; }
排查方法
- 启用详细编译日志
打开Window > Preferences > Java > Compiler > Building,勾选「Enable project specific settings」(若未开启),找到「Logging」区域,勾选「Enable verbose output during compilation」,可指定日志文件路径。重新构建项目后,查看日志里的具体编译细节,定位错误根源。 - 检查模块路径配置细节
右键项目 →Properties > Java Build Path > Modules,确认模块名称为pkix,且已正确关联JDK17。切换到「Module Dependencies」标签,确保java.base、java.net.http、jdk.httpserver都已正确添加。 - 手动同步额外导出项配置
右键项目 →Properties > Java Build Path > Libraries,展开JDK17条目,选择「Module Settings」,在「Exports」标签下手动添加命令行中所有--add-exports对应的导出规则(例如java.base/sun.security.tools.keytool导出给pkix),确保每个规则都配置正确。 - 清理重建项目
执行Project > Clean,选择当前项目清理后,再执行Project > Build Project,排除缓存导致的异常。 - 查看Eclipse错误日志
打开Window > Show View > Other > General > Error Log,这里会记录Eclipse内部的详细错误信息,包括构建过程中抛出的异常,能帮助定位具体问题。
内容的提问来源于stack exchange,提问作者Hamish258
相关产品推荐
相关产品推荐

