1

ここには類似したスレッドがたくさんあるようですが、それらは私を助けませんでした。

Win7とOSXMountainLionで実行しようとしました:1)javaテスト2)java-cp。テスト

//Test.java
class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}

1)Win7エラーの場合:

エラー:メインクラスのテストが見つからないか、ロードできませんでした

2)OSX Mountain Lionエラー:

スレッド"main"の例外java.lang.NoClassDefFoundError:テスト原因:java.lang.ClassNotFoundException: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:306)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at java .lang.ClassLoader.loadClass(ClassLoader.java:247)

ここで何が悪いのか本当にわかりません...:(

ありがとう、オスカー

4

4 に答える 4

1

ファイルの名前はクラス名と同じである必要がありwhich is public、main()メソッドがあります。あなたの場合、ファイル名の名前を変更すると、ファイルTest.javaにTestクラスが宣言されていないため、コンパイルされ、Test.classではなくHelloWorld.classファイルが作成されます。

.classファイルが作成されたら、次のコマンドで実行します。java HelloWorld

詳細については、ここをクリックしください。

これが例です

//Filename abc.java
public class hi
{
public static void main(String[] args)
{
 System.out.println("Hell");
}
}

出力

abc.java:1: class hi is public, should be declared in a file named hi.java
public class hi
       ^
1 error

しかし、これを行う場合

 //Filename abc.java
    class hi
    {
    public static void main(String[] args)
    {
     System.out.println("Hell");
    }
    }

hi.classファイルを作成するので

D:\>java hi
Hell
于 2012-12-06T08:54:26.207 に答える
1

私のTest.java

class HelloWorld {
  public static void main(String[] args) {
    System.out.println("HW");
  }
}

との私の対話bash:

Neoten:bin marko$ ls -al
total 8
drwxr-xr-x   .
drwxr-xr-x   ..
-rw-r--r--   HelloWorld.class
drwxr-xr-x   test
Neoten:bin marko$ java HelloWorld
HW
Neoten:bin marko$ 

実行したディレクトリの内容を投稿していないため、これがエラーの最も可能性の高い原因です。

于 2012-12-06T09:43:44.513 に答える
0

クラスの名前はファイル名と同じである必要があるようです。
test.java含まれている必要がありますclass test

于 2012-12-06T08:52:01.620 に答える
0

クラス名はファイルと同じでなければならず、クラス ディレクトリの場所はクラス パッケージに変換可能でなければなりません。これが、Java が名前空間をサポートする方法であり、パッケージが宣言されていないことをデフォルトの名前空間と呼びます。デフォルトの名前空間を使用することはお勧めしません。

すなわち

// my/name/space/HelloWorld.java
package my.name.space;

public class HelloWorld {
    ...
}
于 2012-12-06T08:59:07.880 に答える