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 で実行するだけで済みます。

スタックトレースは次のとおりです。

スレッド「メイン」での例外 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

からコンパイルする必要があり/srcます

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 に答える