在eclipse java中使用外部包。lang.NoClassDefFoundError
我试图使用来自org.apache.commons.codec
的Base32
。下载包后,我通过以下this guide(part 5 of 5: Adding External JARs)将JAR添加到Eclipse中的项目构建路径中。我输入了代码,IDE在识别包中的类时没有问题:
import java.security.SecureRandom;
import org.apache.commons.codec.binary.*;
public class Authenticator {
public static String generateSecretKey() {
SecureRandom generator = new SecureRandom();
byte[] bytes = new byte[20];
generator.nextBytes(bytes);
Base32 base32 = new Base32();
return base32.encodeToString(bytes);
}
public static void main(String[] args) {
generateSecretKey();
}
}
当我试图运行代码时,出现了以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base32
at Authenticator.generateSecretKey(Authenticator.java:11)
at Authenticator.main(Authenticator.java:17)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base32
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)
... 2 more
我尝试在the guide中使用不同的方法来添加我的罐子,但没有成功。我也尝试了this thread中提出的解决方案,但仍然得到了相同的错误
非常感谢您的帮助
编辑: 这是我的。类路径文件,如果有帮助的话
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-14">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="/Library/commons-codec-1.14/commons-codec-1.14-javadoc.jar"/>
<classpathentry kind="lib" path="/Library/commons-codec-1.14/commons-codec-1.14-sources.jar"/>
<classpathentry kind="lib" path="/Library/commons-codec-1.14/commons-codec-1.14-test-sources.jar"/>
<classpathentry kind="lib" path="/Library/commons-codec-1.14/commons-codec-1.14-tests.jar"/>
<classpathentry kind="lib" path="/Library/commons-codec-1.14/commons-codec-1.14.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
# 1 楼答案
您可以选择项目并右键单击 click the build path and then add external archives
choose the jar
然后选择罐子