0

私のコードは OSX でコンパイルされ、正常に動作します (コンパイラ バージョン 1.6)。しかし、それをリモートのubuntuにコピーすると。実行できません。

私が走るとき

Java TPCC.class

このような例外が発生しました。(ちなみに TPCC.class はデフォルトのパッケージに入っています)

Exception in thread "main" java.lang.NoClassDefFoundError: TPCC/class
Caused by: java.lang.ClassNotFoundException: TPCC.class
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: TPCC.class.  Program will exit.

そして、ubuntu での私の Java バージョン:

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)

これも 1.6 で、コンパイルされたバイナリに適合すると思います。この問題を解決するにはどうすればよいですか?

4

3 に答える 3

2

問題は、プログラムの実行方法にあります。呼び出されたコンパイル済み Java

クラス名.java

ClassName.class になります。次のように実行する必要があります

「ジャバクラス名」

. 次のように実行しないでください

「java クラス名.class」

ここで起こることはこれです。java ClassName.class として実行すると、JVM は "ClassName" というパッケージ内に存在しない "class" という ClassName を探します。そのため、NoClassDefFoundError がスローされます。

于 2012-07-20T07:05:08.697 に答える
0

エラーが示すように、これは呼び出しの問題です。クラスのファイル名ではなく、Java を使用する必要があります。エラーメッセージは、「TPCC/class」が見つからないことを示すことで、これを伝えようとしています。

(最初にコメントを追加して申し訳ありません、間違ったフィールドを使用しました)

于 2012-07-20T06:47:37.320 に答える
0

java を呼び出すときにクラスパスを指定します。

java -cp <path-to-jar> TPCC
于 2012-07-20T06:53:33.337 に答える