2

私のファイル名は Temp.java で、その中にこれがあります。私はEclipse IDEを使用しています

/*package*/ class Test {
    public static void main(String args[]) {
        System.out.println("test");
    }
}

そのため、これを Java アプリケーションとして実行できませんでした。クラス名を Temp に変更します

class Temp {
 ....
}

今、私はできます。誰かが私に理由を説明できますか?

4

5 に答える 5

6

これはおそらく Eclipse の制限です。コードはコマンド ラインから適切に実行されます。

私が理解しているように、テスト対象のクラスと同じファイルに単体テストを埋め込もうとしています。これは素晴らしいアイデアであり、私はそれに完全に同意します。成功する方法については、Ben J. Christensen のブログ投稿を参照してください。一般に、彼はテストを同じファイル内のスタンドアロン クラスではなく、静的な内部クラスに配置することを提案しています。

Netflix Hystrix フレームワークの例: HystrixCircuitBreaker.UnitTest

于 2012-12-06T11:40:24.083 に答える
1

問題はEclipseにあります。あなたはを使用して実行しようとしていると思いますがright click -> run as -> Java Application、残念ながら、クラスが公開されていない場合、Eclipseはこのオプションを表示しません。ただし、を使用してクラスを実行することはできますAlt+Shift+X,J。Javaの問題ではなく、Eclipseの問題です。

于 2012-12-06T11:59:54.160 に答える
1

mainファイル内のクラス (実行する必要がある) は、.javaファイルと同じ名前にする必要があります。クラスが公開されていない場合(あなたの場合のように)、クラスはコンパイルされますが、Eclipseはファイル名に従ってクラスをロードしようとするため、実行できません。

于 2012-12-06T11:37:24.863 に答える
1

The code below, located in Temp.java, compiles and runs fine with Netbeans:

class Whatever {

    public static void main(String[] args) {
        System.out.println("hello");
    }
}
于 2012-12-06T11:47:41.103 に答える