2017-08-29 4 views
0

ファイル「HelloDemo.java」パスは、エラー「/test/hello/HelloDemo.java」Errorクラスの固定が、私はそれを「実行」するとき

package test.hello; 

public class HelloDemo { 
    public static void main(String[] args) { 
     System.out.print("Hello!!"); 
    } 
} 

である理由を私は理解していないが見つかりません発生した。

Building HelloDemo.java and running HelloDemo 
Error: Could not find or load main class HelloDemo 

次に、コードを変更しました。

//package test.hello; 

public class HelloDemo { 
    public static void main(String[] args) { 
     System.out.print("Hello!!"); 
    } 
} 

私はそれを "実行"し、コード成功出力。

Building HelloDemo.java and running HelloDemo 
Hello!! 

これは「実行」に関するscreenshotです。 エラーを修正しましたが、なぜか分からない、助けが必要です、ありがとう!

パッケージのコメントを残しておきたい場合は、どうすれば解決できますか?

+1

最初の「修正されていない」バージョンは、2番目のバージョンと同じくらいうまく動作します。メインメソッドを追加した後でそれを保存することを忘れていましたか? –

+0

実行前に保存しました。私のIDEはide.cloud9.io –

答えて

0

これは、すでにファイルを実行した後で、おそらくファイルの場所を変更したためです。したがって、実行コンフィギュレーションは、HelloDemoではなく、ビルドされたjarファイル内の新しいtest.hello.HelloDemoクラスを探すように変更する必要があります(初期設定のパッケージにあったはずです)。あなたのIDEは何ですか?

備考:これはクラスパスが変更されたファイルの場所を変更したためではなく、その逆もあります。

のIntelliJで

、あなたはこれを行う必要があります:https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html

+0

私のIDEはide.cloud9.io –

+0

ですこのリンクを確認してください:https://docs.c9.io/docs/running-and-debugging-code正しいクラスを設定するように実行コンフィギュレーションを変更してください。 "package X.Y"をファイルの中に入れた場合、クラスパスはX.Y.ClassNameになります – belka

+0

これはあなたの質問に答えた場合、答えとしてマークしてください。 – belka

0

IDEを使用してパッケージを作成し、クラスを追加します。パッケージ名は自動的に先頭に追加されます。 IDEに関係なく、フォルダ構造がパッケージ構造と一致する必要があります。ここに問題がある可能性があります。

+0

です。パッケージ名は自動的にcloud9 IDE上に追加されますか?なぜ私はそれを見ることができないのですか? –

+0

これで、フォルダ階層とパッケージ階層を手動で一致させる必要があります。 –

0

クラスの名前は、実際にパッケージプラスクラス名です。 HelloDemoは、クラス名ではないため、最初のケースで実行することはできません。クラス名はtest.hello.HelloDemoです。

パッケージをコメントアウトすることによって、クラスを実質的にHelloDemoに変更したので、それは実行されます。

また、mainを使用してクラスを実行する場合は、正しい場所にある必要があります。たとえば、クラスがtest.hello.HelloDemoの場合、フォルダ構造は/test/hello/HelloDemo.javaになります。

あなたは/になり、そこからtest.hello.HelloDemoを実行する必要があります。

関連する問題