0

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

- 运行 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(本机方法)

在 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。程序将会退出

4

1 回答 1

1

假设这个结构

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

您将需要从/srcas编译

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

这将.class/Package. 然后,您可以再次运行/src

java -cp j1.jar:j2.jar Package.Coder

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

于 2013-09-26T13:58:10.903 回答