【问题标题】:Eclipse IDE for Java Developers 2021-06 Cannot find class paths for jarsEclipse IDE for Java Developers 2021-06 找不到 jar 的类路径
【发布时间】:2022-01-15 16:44:15
【问题描述】:

我已经构建了一台新机器并安装了新版本的 eclipse(Eclipse IDE for Java Developers 2021-06)。如果我运行一个旧项目,它可以工作。如果我创建一个新项目,则会出现以下错误。
线程“主”java.lang.NoClassDefFoundError 中的异常:net/crl/CRLibs/DBI 在 EnvList.(EnvList.java:143) 引起:java.lang.ClassNotFoundException:net.crl.CRLibs.DBI
代码中没有错误。 构建路径如下:

Line:143 is: static DBI db = new DBI();

DBI 在 crlibs jar 中定义。 在我的旧 Eclipse (Oxygen) 中,构建路径如下所示:

我尝试将 crlibs jar 添加到 Classpath,但它不允许我保存它(所有框都变灰)。 现在这段代码是我使用的模板的副本。原始版本运行良好,其构建路径看起来像来自 Oxygen 的路径。

如果我注释掉这一行,它将在下一次访问库时给出相同的错误。 似乎没有包含库的类路径。 注意 该库是用 Oxygen 构建的。我是否需要用新版本重建它,如果需要,它仍然适用于使用 Oxygen 构建的所有代码。 我该如何解决这个问题?

注意: 面向 Web 开发人员的 Eclipse Java EE IDE。 版本:Oxygen.3a 版本 (4.7.3a) 内部版本号:20180405-1200

并且 面向 Java 开发人员的 Eclipse IDE(包括孵化组件) 版本:2021-06 (4.20.0) 版本号:20210612-2011

编辑: 这是 .classpath 文件。:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="resources"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-16">
        <attributes>
            <attribute name="module" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="lib" path="E:/Documents and Settings/Cliff/libs/crlibs.jar" sourcepath="E:/Documents and Settings/Cliff/Libs_src/CRLibs/src/net/crl/CRLibs">
        <attributes>
            <attribute name="javadoc_location" value="file:/E:/Documents%20and%20Settings/Cliff/Libs_src/CRLibs/CRLibs/doc/"/>
            <attribute name="module" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="bin"/>
</classpath>

jar 的路径在吗?

EDIT2 命令行:

【问题讨论】:

  • 您有module-info.java 文件吗?删除它可以解决您的问题吗?这也可能是由于使用 Java 16 而不是 Java 8(因为 Java 9 不再存在 100% 向后兼容性)。
  • @howlger 没有 module-info.java。我确实尝试过更改 Java #s,但没有任何变化。谢谢
  • @abra Eclipse 没有显示错误。正如我所说,它在旧的 Eclipse 中运行没有错误。
  • @abra 是的。您可以在图 1 中看到该库的构建路径。请参阅 edit2 了解运行依赖和命令行。
  • 混合类路径和模块路径对我来说永远不起作用。我总是把所有东西都放在模块路径中。

标签: java eclipse


【解决方案1】:

如下图

您必须从 Modulepath 中删除 jar,然后将其添加到 Classpath。 JRE 在 Modulepath 中似乎很好。一旦我的库位于类路径中,代码就可以工作。

【讨论】:

    猜你喜欢
    • 2021-09-26
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多