Java 运行时ClassNotFoundException/NodeFound,但导入的类在其上工作';他自己的?

Java 运行时ClassNotFoundException/NodeFound,但导入的类在其上工作';他自己的?,java,eclipse,noclassdeffounderror,classnotfoundexception,Java,Eclipse,Noclassdeffounderror,Classnotfoundexception,我正在尝试将我在Eclipse中创建的jar导入到我的项目中。在尝试从所谓的jar调用时,我得到以下异常: Exception in thread "main" java.lang.NoClassDefFoundError Caused by: java.lang.ClassNotFoundException 我认为这是由于类在编译时存在,但在运行时没有执行 问题是:当我自己运行jar时(没有被导入),它可以按照预期工作,具有所有功能。但是我现在需要它作为一个更大的jar的一部分工作,而不改变

我正在尝试将我在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完全可以作为一个独立的jar运行,因为它的目的是作为一个库,并且它本身也可以运行

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

可以从命令提示符下运行MyJar.jar,使用
java-jar MyJar.jar
,它将打印它的测试页面以显示它正在工作

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

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


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

你的问题很不清楚。找不到哪个类?它是哪个罐子的一部分?您如何运行您的应用程序?@JBNizet将对其进行编辑以进一步澄清。@JBNizet看它是否有任何改进。@MoisesCol。“它被导入另一个罐子”是什么意思?是否将类(*.class文件和相应的包结构)放入MyJar.jar中?通过将MyJar.jar作为简单的ZIP存档打开来检查它。它被导入到另一个jar中,这意味着什么?您不能将罐子导入罐子。这并不意味着什么。MyJar包含什么,这个“新项目”是什么,以及如何运行它?它们都在我导入到项目的Jar中。这些类都在那里,你是如何构建myJar.jar的?请参阅我对您的问题的评论(这是顶部的第四条评论)。我强烈建议使用Maven Assebly插件,因为它在这种情况下工作得非常完美。否则,您应该手动将类添加到JAR中。我指的是类文件到Java存档的物理拷贝!