0

Mac でプログラムを作成し、ターミナル経由でコンパイルしました。

cd user/desktop/Code/Program/src/program
javac Program.java
**java Program**

次に、次のエラーが表示されます。

Exception in thread "main" java.lang.NoClassDefFoundError: Program (wrong name: program/Program)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:480)

これを修正する方法を知っている人はいますか?

ソースコード:

package learning;

public class Learning{

    public static void main(String[] args){
        String[] wordListOne = {"you are","I know","I eat"};
        String[] wordListTwo = {"a poo","a funny","a posh"};
        String[] wordListThree = {"Sandwich","person","object"};

        int oneLength = wordListOne.length;
        int twoLength = wordListTwo.length;
        int threeLength = wordListThree.length;

        int rand1 = (int) (Math.random() * oneLength);
        int rand2 = (int) (Math.random() * twoLength);
        int rand3 = (int) (Math.random() * threeLength);

        String phrase = wordListOne[rand1]+" "+wordListTwo[rand2]+" "+wordListThree[rand3];

        System.out.println(phrase);
    }
}
4

3 に答える 3

8

これを使ってみてください。

javac learning/Learning.java
java learning.Learning

あなたのプログラムはLearningではなくと呼ばれProgramます。learningこれは、フォルダがあるディレクトリから行う必要があります。例:

C:/path/to/files/learning/Learning.class

次に、次のコマンドをC:/path/to/files/使用して移動します。cd

cd C:/path/to/files/

そして、ステートメントを実行します。

于 2013-01-19T01:52:24.070 に答える
0

ファイル名を Learning.java に変更します

次に、コンパイルして実行します(program.javaではなくLearning.java)

ファイル名は、静的クラスの名前と同じにする必要があります。

于 2013-01-19T01:52:40.840 に答える
0

NoClassDefFoundError は通常、コンパイル時に使用可能だったクラスが実行時には使用できないことを意味します。たとえば、コンパイルと実行時のクラスパスが一致しません。詳細については、次のブログ記事を参照してください: http://javarevisited.blogspot.ca/2011/06/noclassdeffounderror-exception-in.html?m=1

于 2013-01-19T01:57:32.543 に答える