プロが教える店舗&オフィスのセキュリティ対策術

Javaを勉強している初心者です。現在「スッキリわかるJava入門 第2版」という本で勉強をしているのですが、第8章のオブジェクト指向でインスタンスを作るクラスファイルとメインクラスファイルを本の通り作成後、コンパイルしたのですが、実行すると
「メインクラスXXXが見つからなかったか、ロードできませんでした」というエラーとなります。原因が全く分かりません。どなたかご教授頂けないでしょうか。

ちなみに作成したjavaファイルは下記の2つになります。
①Main.java
public class Main {
public static void main(String[] args){
Hero h = new Hero();
h.name = "ミナト";
h.hp = 100;
System.out.println("勇者" + h.name + "を生み出しました!");
h.sit(5);
h.slip();
h.sit(25);
h.run();
}
}
②Hero.java
public class Hero{
String name;
int hp;
void attack(){}
void run(){
System.out.println(this.name + "は、" + "逃げ出した!");
System.out.println("GAME OVER");
System.out.println("最終HPは"+ this.hp + "でした。");
}
void sit(int sec){
this.hp += sec;
System.out.println(this.name + "は、" + sec + "秒座った!");
System.out.println("HPが" + sec + "ポイント回復した。");
}
void slip(){
this.hp -= 5;
System.out.println(this.name + "は、" + "転んた!");
System.out.println("5のダメージ!");
}
void sleep(){
this.hp = 100;
System.out.println(this.name + "は、眠って回復した!!");
}
}

これら2つのファイルを同時にコンパイルするとエラー無くClassファイルが作成されますが、それぞれ別にコンパイルすると①のMain.javaのコンパイル時に
「”Hero h = new Hero();」の部分で"シンボルが見つかりません"というエラーになります。
Heroについては②Hero.javaという別ファイルで定義しているからだと思いますが、実行時にエラーが出るのは別々にコンパイルした時にこのようにエラーが出ることが要因なのでしょうか。

ちなみに、①と②のファイルは同じフォルダ内に保存しており、コマンドプロンプトでcdを当フォルダに指定して実行を試みていますが、これが要因なのでしょうか。。

A 回答 (1件)

やってみましたが、このソースで


コンパイル、実行は全く問題ないですね。

やり方は以下の通り。
ソースのあるフォルダに cd して。

① コンパイル
javac Main.java
# 参照しているクラスは自動的にコンパイルされます。
② 実行
java Main
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
おっしゃる通り、ソースファイルを別のフォルダに移して再度実行してみたら問題なくできました! コマンドプロンプトでのpath設定が間違っていたのかもしれません。
ありがとうございました!

お礼日時:2016/06/02 11:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!