【发布时间】:2018-10-16 12:32:01
【问题描述】:
我无法使用 Java 10 或 Java 11 运行 .jar 存档(它们以 NoClassDefFoundError 退出)。同样,我也无法将 .jar 档案导入 Java 项目;它们出现在 Classpath 中,但 Eclipse 说无法解析导入。当我降级到 Java 8 时,我能够很好地运行 .jar 存档,并且它们也可以在任何导入它们的 Java 项目中被识别。
例如:
我正在将mongo-java-driver-3.8.2 导入到 Eclipse Photon 上的 Java 项目中。我将.jar 添加到项目的类路径(项目-> 属性-> Java 构建路径)。然而,Eclipse 输出The import com.mongodb cannot be resolved,如下图所示:
【问题讨论】:
-
你必须明白 classpath 现在并不孤单,它伴随着一个叫做 modulepath 的东西,而且你的
jars必须出现在其中任何一个中。从您的设置中听起来,理想情况下 Eclipse 应该会解决这个问题,在其他几个问题中似乎工作正常。也就是说,请检查您正在使用的 Eclipse 版本以及您正在使用的 jar(库)与 Java10/11 的兼容性。 -
请阅读“如何创建minimal reproducible example”。然后使用edit 链接改进您的问题(不要通过 cmets 添加更多信息)。否则我们无法回答您的问题并为您提供帮助。
-
我猜你看到了模块路径与类路径的效果。但是你的问题读起来就像一个人打电话给他的车库“我的车发出奇怪的声音。现在告诉我如何解决这个问题”。鉴于我们目前获得的信息量,我们做不到。
-
你使用JPMS(默认包是否包含
module-info.java文件)? -
它确实包含该文件。 @GhostCat 对不起。我已经编辑了我的原始问题以包含一个示例。
标签: java eclipse jar java-10 java-11