Java公共图书馆Lang3';ClassNotFoundException';错误
尝试运行此代码时,我遇到以下错误:Java公共图书馆Lang3';ClassNotFoundException';错误,java,eclipse,oop,import,classnotfoundexception,Java,Eclipse,Oop,Import,Classnotfoundexception,尝试运行此代码时,我遇到以下错误: import java.util.Arrays; import org.apache.commons.lang3.ArrayUtils; public class MonsterGame { public static void main(String[] args) { Monster.buildBattleBoard(); char[][] tempBattleBoard = new char[10]
import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;
public class MonsterGame {
public static void main(String[] args)
{
Monster.buildBattleBoard();
char[][] tempBattleBoard = new char[10][10];
// ObjectName[] ArrayName = new ObjectName[4];
Monster[] Monsters = new Monster[4];
// Monster(int health, int attack, int movement, String name)
Monsters[0] = new Monster(1000, 20, 1, "Frank");
Monsters[1] = new Monster(500, 40, 2, "Drac");
Monsters[2] = new Monster(1000, 20, 1, "Paul");
Monsters[3] = new Monster(1000, 20, 1, "George");
Monster.redrawBoard();
for (Monster m : Monsters) {
if(m.getAlive()) {
int arrayItemIndex = ArrayUtils.indexOf(Monsters, m);
m.moveMonster(Monsters, arrayItemIndex);
}
}
Monster.redrawBoard();
}
}
我有两个文件,在同一个包里。我只展示了这一个,因为我认为另一个文件不是问题所在。
我学习了关于如何使用java库的教程:下载、导入、构建路径等
这里的问题是,导入似乎很好,但实际使用库才是问题所在
我对Java非常陌生,如果这是一个非常简单的错误需要修复,那么很抱歉
感谢您提前提供任何回复/反馈。您正在使用的参考库(apache common lang3)和任何其他库有三种不同的使用方式
lib
文件夹中
编辑:当使用最新版本的eclipse并将项目导出为可运行jar时,系统会询问您希望以何种方式处理库:
如果您没有看到export对话框的这一小节,则表明您做了错误的事情(可能您没有将其导出为runnable jar)。您正在使用的引用库(apache common lang3)和任何其他库以三种不同的方式使用
lib
文件夹中
编辑:当使用最新版本的eclipse并将项目导出为可运行jar时,系统会询问您希望以何种方式处理库:
如果您没有看到export对话框的这一小节,则表明您做了错误的事情(可能您没有作为runnable jar导出)。在Java中,类库(jar)通常放在库路径中,例如
lib
,并在那里引用。但它们也需要导出到最终部署的jar中。如果使用IDE(如eclipse、intelliJ或netbeans),则可以在相应的UI中执行此操作。因此,将库添加到构建路径只会告诉IDE库的位置,但是一旦部署了库,程序也需要知道库的位置。因此,在您的部署路径中需要有一个lib文件夹(或者,如果导出jar,您必须将其重新部署到您自己的jar中)。您是否有机会使用eclipse?@TreffnonX我在项目的lib目录中引用了该库。我不理解部署部分?当您将项目“导出”到可运行的jar
时,必须选中一个复选框,该复选框决定将apache commons放入导出的jar中。或者,您可以使用其他重新部署方式之一。否则,正在运行的程序将找不到库。您的IDE知道它在哪里,但您的jar不包含它。。。也可能是您忘记重建项目,但我假设您有某种自动构建活动。在Java中,类库(JAR)通常放在库路径中,例如lib
,并在其中引用。但它们也需要导出到最终部署的jar中。如果使用IDE(如eclipse、intelliJ或netbeans),则可以在相应的UI中执行此操作。因此,将库添加到构建路径只会告诉IDE库的位置,但是一旦部署了库,程序也需要知道库的位置。因此,在您的部署路径中需要有一个lib文件夹(或者,如果导出jar,您必须将其重新部署到您自己的jar中)。您是否有机会使用eclipse?@TreffnonX我在项目的lib目录中引用了该库。我不理解部署部分?当您将项目“导出”到可运行的jar
时,必须选中一个复选框,该复选框决定将apache commons放入导出的jar中。或者,您可以使用以下选项之一:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/ArrayUtils
at MonsterGame.main(MonsterGame.java:55)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.ArrayUtils
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more