有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java ClassNotFoundException/NodeFound在运行时运行,但导入的类可以自己运行吗?

我正在尝试将我在Eclipse中创建的jar导入到我的项目中。在尝试从所谓的jar调用时,我得到以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError
Caused by: java.lang.ClassNotFoundException

我认为这是由于类在编译时存在,但在运行时没有执行

问题是:当我自己运行jar时(没有被导入),它可以按照预期工作,具有所有功能。但是我现在需要它作为一个更大的jar的一部分工作,而不改变运行时类路径(对原始项目没有这样做)

如何才能做到这一点

@编辑

未找到的类或未找到的def是FastUtil库中的ByteList。 线程“main”java中出现异常。lang.NoClassDefFoundError:it/unimi/dsi/fastutil/bytes/ByteList

它被导入到另一个Jar中,我们称之为MyJar。罐子我的罐子。jar作为一个独立的jar可以完美地运行,因为它的目的是成为一个库,并且它可以自己运行

情况是:当我导入MyJar时。jar到另一个项目,它将不再工作,我不能在新项目中使用它的方法和类

我的罐子。jar可以通过java -jar MyJar.jar从命令提示符运行,它将打印它的测试页面以显示它正在工作

新项目可以编译,但是当它运行时,我得到了关于MyJar项目的类not found异常


共 (1) 个答案

  1. # 1 楼答案

    您可以使用Maven Assembly Plugin添加相关JAR中的所有类,否则在不将类添加到classpath的情况下无法加载类

    如果您不想使用Maven,那么将所有需要的类手动添加到您的JAR中