有 Java 编程相关的问题?

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

在eclipse java中使用外部包。lang.NoClassDefFoundError

我试图使用来自org.apache.commons.codecBase32。下载包后,我通过以下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) 个答案