0

いくつかの機能をテストしたいソースコードサンプルが提供されました。残念ながら、プログラムの実行に問題があります。

11:41:31 [linqus@ottsrvafq1 example]$ javac -g  test/test.java
11:41:52 [linqus@ottsrvafq1 example]$ java -classpath . test/test
Exception in thread "main" java.lang.NoClassDefFoundError: test/test (wrong name: test)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        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: test/test.  Program will exit.
11:42:57 [linqus@ottsrvafq1 example]$

私は何ができますか?

4

5 に答える 5

4

私はJavaの経験があまりありませんが、私が知る限り、ファイルを実行するには完全修飾Javaクラス名を使用する必要があります。

// Assuming that the class is called "test" and is not in any package
java -classpath test test

// If "test" is actually in the package "test" :
java -classpath . test.test
于 2013-01-14T10:51:37.767 に答える
1

javaコマンドでクラスを実行するには、を使用する必要があります。それ以外の /

javacコマンドが示唆するようtestに、がパッケージ内のクラスであると想定します。test

例えば

java -classpath . test.test

また、Javaの命名規則に従い、クラスに大文字で始まる名前を付ける必要があります。test.Testクラスとパッケージを区別しやすくする必要があります

javacを使用する場合は/を使用する必要があるため、コンパイルは正しいです

于 2013-01-14T10:51:48.373 に答える
1

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

java -classpath test test

1つ目は、ファイルが存在testするディレクトリの名前です。2つ目は、実行するJavaクラスの名前です。通常、ここで完全なパッケージ名を指定する必要がありますが、クラスはグローバルパッケージに含まれているため、ここを渡すだけで機能します。.classtesttest

于 2013-01-14T10:52:36.057 に答える
0

コードを IDE (eclipse、intellij、netbeans) に読み込むと、問題が明らかになる可能性があります。

あなたのコードには単純なもの (パッケージ名など) が欠けているようです。

于 2013-01-14T10:58:23.657 に答える
0

大文字と小文字の問題がある可能性があります。クラス名は、コマンドから呼び出すものとは異なります。クラス名がで、コマンドラインで指定Testするとします。test

http://javarevisited.blogspot.in/2011/06/noclassdeffounderror-exception-in.html

于 2013-01-14T11:10:17.373 に答える