前提・実現したいこと
javaを学習中なのですが、javaのmainメソッドが1番上のクラスにないと
クラスにmain(String[])メソッドが見つかりません
というエラーが出てしまう。コンパイルはできる。
発生している問題・エラーメッセージ
エラー: クラスにmain(String[])メソッドが見つかりません: Parent
該当のソースコード
java
1class Parent { 2 // クラスフィールド(気質・知力・体力の下限と上限) 3 int property = -10; 4 // コンストラクタ 5 Parent() { 6 setData(0); 7 } 8 // コンストラクタ 9 Parent(int property) 10 setData(property); 11 } 12 13 void setData(int property) { 14 this.property = property; 15 } 16} 17 18public class EffortTest { 19 public static void main(String[] args) { 20 Parent mom = new Parent(100); 21 System.out.println(mom.property); 22 } 23}
すみません、
public static void main(String[] args) {
の波括弧が、閉じされていないようなのですが,,
これでコンパイルが通ることは無いはずです。
申し訳ございません。これは僕のタイプミスです。閉じてても同じエラーが起こってしまいます
下の回答者さんの解決法でやってみてください,,
解決はしたのですが、なぜmainメソッドを一番上にしないとエラーが起こるのでしょうか?調べても一番上でないといけないという記述がないため、疑問なのですが、、
通常、上にあるクラスがメインクラス(main()があり、実行できるクラス)とJavaさんが解釈する仕様です。
そのため、上のクラスにmain(String[] args)がないと、Javaさんとしてはおかしい という結果になってしまっています。
--追記
Java15で試したところ、正常にコンパイル、実行ができました。
Java環境にも依存するようです。
Java8以降を使用してみてください。
https://paiza.io/projects/umiN8mibl-RQiTGIRGL0TA
ありがとうございます!ぜひ、ベストアンサーにしたいので、上記を回答にしていただけないでしょうか?
了解です。ありがとうございます
Javaの仕様は関係ない筈です。実行環境を教えて下さい。
回答3件
あなたの回答
tips
プレビュー