gpt4 book ai didi

运行时出现 java.lang.NoClassDefFoundError : Need Class not on Classpath

转载 作者:行者123 更新时间:2023-12-01 14:04:25 24 4
gpt4 key购买 nike

我尝试了本网站上建议的几种方法以及其他几种方法,但均无济于事。

-运行 Angstrom 嵌入式 Linux、OpenJDK6、Shark VM。

文件结构

所有.java和.jar文件都存储在目录./src中

  • jar 文件:j1.jar j2.jar

  • 源代码:Coder.java、WrapperClass.java

编译并运行

  • javac -cp j1.jar:j2.jar Coder.java WrapperClass.java
  • 成功编译并输出 Coder.class、WrapperClass.class 以及其他几个文件,包括 Coder$1.class 到 Coder$6.class,以及 Coder$Main_thread.class 和 Coder$Progress_Bar_Thread.class,了解所有这些 .class 文件的用途吗?

  • 运行尝试全部在 java.lang.ClassNotFoundException 中终止。

    • ~/coder/src: java Package.Coder
    • ~/coder/src: java -cp jar1.jar:jar2.jar Package.Coder
    • ~/coder: java ./src/Package.Coder
    • ~/coder: java -cp jar1.jar:jar2.jar ./src/Package.Coder

非常感谢您的帮助。我已经在 NetBeans 上运行了它,并且可以验证它的功能代码,只需让它在 Linux 上运行即可。

堆栈跟踪是:

线程“main”中的异常 java.lang.NoClassDefFoundError: Package/Coder 引起:java.lang.ClassNotFoundException: Package.Coder

在 java.net.URLClassLoader$1.run(URLClassLoader.java:217)

在 java.security.AccessController.doPrivileged( native 方法)

在 java.net.URLClassLoader.findClass(URLClassLoader.java:321)

在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)

在 java.lang.ClassLoader.loadClass(ClassLoader.java:266)

在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)

找不到主类:Package.Coder。程序将退出

最佳答案

假设这个结构

/coder
/src
/Package
/Coder.java
/WrapperClass.java
/j1.jar
/j2.jar

您需要从 /src 编译为

javac -cp j1.jar:j2.jar Package/Coder.java Package/WrapperClass.java

这将在 /Package 中创建 .class 文件。然后您可以再次从 /src as

运行它
java -cp j1.jar:j2.jar Package.Coder

假设 Coder 类有一个 main 方法,该方法是您的入口点。

关于运行时出现 java.lang.NoClassDefFoundError : Need Class not on Classpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com