質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

967閲覧

メイン・メソッドがクラスで見つかりません。と出力されます

takuan_55

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2024/01/22 06:14

編集2024/01/22 06:28

実現したいこと

mainメソッドを読み取って、ボタンを表示させたいです。
(ボタンを押下した後の動作は、別のクラスファイルに記述しています。)

発生している問題・分からないこと

Eclipseを使っています。
mainメソッドが先頭に来ているのにもかかわらず、mainメソッドが見つからないと言ってきます。
ほかの方の投稿やほかのサイトも見ましたが、私の質問のパターンと異なっていてわかりませんでした。
すみませんが、ご教授いただければ幸いです。

★比較対象★ ソースコード2
通常使っている問題のないコードです。
ここではコンストラクタを使っていますが、ボタンは起動します。

エラーメッセージ

error

1エラー: メイン・メソッドがクラスcompare_file_test.startButtontestで見つかりません。次のようにメイン・メソッドを定義してください。 2 public static void main(String[] args) 3またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要があります

該当のソースコード

Java

1//修正したいコード 2package Create_DigimonMsc; 3 4import java.awt.BorderLayout; 5import java.awt.Color; 6import java.awt.Container; 7import java.awt.Dimension; 8import java.text.SimpleDateFormat; 9import java.util.Calendar; 10import java.util.Date; 11 12import javax.swing.JButton; 13import javax.swing.JFrame; 14import javax.swing.JPanel; 15 16public class startButtontest extends JFrame{ 17 public static void main(String args[]){ 18 startButtontest start_frame = new startButtontest("デジモンミュージック"); 19 start_frame.setVisible(true); 20 } 21 22 startButtontest(String title){ 23 Date date = new Date(); 24 Calendar cal = Calendar.getInstance(); 25 int hour = cal.get(Calendar.HOUR_OF_DAY); 26 SimpleDateFormat dateForm_Day = new SimpleDateFormat("yyyyMMdd"); 27 28 //日付 29 String stringToday = dateForm_Day.format(date); 30 int integerToday = Integer.valueOf(stringToday); 31 32 setTitle(title); 33 setBounds(100, 100, 600, 400); 34 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 35 36 //顧客ボタン 37 JButton button_btf = new JButton("Butter-Fly"); 38 button_btf.setPreferredSize(new Dimension(100, 50)); 39 JButton button_bvh = new JButton("Brave Heart"); 40 button_bvh.setPreferredSize(new Dimension(100, 50)); 41       JButton button_tbd = new JButton("The Biggest Dreamer"); 42 button_tbd.setPreferredSize(new Dimension(100, 50)); 43 44 //閉じるボタン 45 JButton exitButton = new JButton("✕"); 46 exitButton.setPreferredSize(new Dimension(50, 30)); 47 48 if((hour >= 15)&&(hour<=18)) { 49 JPanel button_panel_Dgmmsc = new JPanel(); 50 button_panel_Dgmmsc.setBackground(Color.ORANGE); 51 button_panel_Dgmmsc.add(button_btf); 52 button_panel_Dgmmsc.add(button_bvh); 53 button_panel_Dgmmsc.add(button_tbd); 54 Container contentPanel_Dgmmsc = getContentPane(); 55 contentPanel_Dgmmsc.add(button_panel_Dgmmsc, BorderLayout.CENTER); 56 }

Java

1//通常使っている問題のないコード(参考) 2package Create_slamdunkMsc; 3 4import java.awt.BorderLayout; 5import java.awt.Color; 6import java.awt.Container; 7import java.awt.Dimension; 8import java.awt.FlowLayout; 9import java.awt.event.ActionEvent; 10import java.awt.event.ActionListener; 11import java.io.File; 12import java.text.SimpleDateFormat; 13import java.util.Calendar; 14import java.util.Date; 15 16import javax.swing.JButton; 17import javax.swing.JFrame; 18import javax.swing.JOptionPane; 19import javax.swing.JPanel; 20 21public class StartButton extends JFrame{ 22 public static void main(String args[]){ 23 StartButton start_frame = new StartButton("スラムダンクミュージック"); 24 start_frame.setVisible(true); 25 } 26 27 StartButton(String title){ 28 Date date = new Date(); 29 Calendar cal = Calendar.getInstance(); 30 int hour = cal.get(Calendar.HOUR_OF_DAY); 31 SimpleDateFormat dateForm_Day = new SimpleDateFormat("yyyyMMdd"); 32 33 //日付 34 String stringToday = dateForm_Day.format(date); 35 int integerToday = Integer.valueOf(stringToday); 36 37 setTitle(title); 38 setBounds(100, 100, 600, 400); 39 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 40 41 //顧客ボタン 42 JButton button_kss = new JButton("君が好きだと叫びたい"); 43 button_kss.setPreferredSize(new Dimension(100, 50)); 44 JButton button_adm = new JButton("あなただけ見つめてる"); 45 button_adm.setPreferredSize(new Dimension(100, 50)); 46 JButton button_dzk = new JButton("第ゼロ感"); 47 button_dzk.setPreferredSize(new Dimension(100, 50)); 48 49 //閉じるボタン 50 JButton exitButton = new JButton("✕"); 51 exitButton.setPreferredSize(new Dimension(50, 30)); 52 53 //朝作業顧客 54 if ((hour >= 7)&&(hour<=11)) { 55 JPanel button_panel_SlamdMsc = new JPanel(); 56 button_panel_SlamdMsc.setBackground(Color.GREEN); 57 button_panel_SlamdMsc.add(button_kss); 58 button_panel_SlamdMsc.add(button_adm); 59 button_panel_SlamdMsc.add(button_dzk); 60 Container contentPanel_SlamdMsc = getContentPane(); 61 contentPanel_SlamdMsc.add(button_panel_SlamdMsc, BorderLayout.CENTER); 62 } 63 64 //閉じるボタンの位置 65 JPanel button_panel_EXIT = new JPanel(); 66 FlowLayout layout = new FlowLayout(); 67 layout.setAlignment(FlowLayout.RIGHT); 68 button_panel_EXIT.setBackground(Color.WHITE); 69 button_panel_EXIT.add(exitButton); 70 button_panel_EXIT.add(convert); 71 Container contentPanel_EXIT = getContentPane(); 72 contentPanel_EXIT.add(button_panel_EXIT, BorderLayout.PAGE_END); 73 74 //supportTime N: Night/D: Day/A: Night&Day/E: EOD 75 //第ゼロ感 76 button_dzk.addActionListener(new ActionListener() { 77 @Override 78 public void actionPerformed(ActionEvent e) { 79 //別クラスのメソッドへ 80 } 81 }); 82 83 //閉じるボタン 84 exitButton.addActionListener(new ActionListener() { 85 @Override 86 public void actionPerformed(ActionEvent e) { 87 System.exit(0); 88 } 89 }); 90 } 91} 92

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

対象ソースコードはソースコード2 を基に作成しました。
teratailで「メインメソッドが見つからない」と同様の質問がありましたが、
mainメソッドが不足している、mainメソッドが先頭にないなど上記のコードの事象と合致しないため、
改めて記述しました。
私の解釈違いなら、別の方と合致している部分や表現を具体的に教えて頂けると幸いです。

補足

・Eclipse 「実行の構成」ではCreate_DigimonMsc.startButtontestを指定しています。
・java 17 使用 (ソースコード 1 および 2)
・Windows 11 Pro 使用

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2024/01/22 06:28 編集

エラーメッセージを読むと判るかと思いますが、   public static void main(String args[]){ String args[] ではなく String[] args です。
takuan_55

2024/01/22 06:37

ありがとうございます。 私の記入ミスの指摘をありがとうございます。 こちらを修正して(String[] args){}にして試しましたが、やはり同じエラーが出力されてしまいます。
jimbe

2024/01/22 12:55

>String args[] ではなく String[] args java はどちらでも大丈夫です。
melian

2024/01/22 13:12

> java はどちらでも大丈夫です。 でした。ご指摘、ありがとうございます。
takuan_55

2024/01/24 03:52

melianさん、jimbeさん、 ご指摘をありがとうございます。 いずれもエラーになってしまうので、この箇所が原因ではないと考えています。
guest

回答1

0

ベストアンサー

エラー: メイン・メソッドがクラスcompare_file_test.startButtontestで見つかりません。

compare_file_test パッケージの startButtontest を実行しようとしています。

Eclipse 「実行の構成」ではCreate_DigimonMsc.startButtontestを指定しています。

ということですが、実際には設定が出来ていないものと思われます。

投稿2024/01/22 07:03

jimbe

総合スコア13318

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takuan_55

2024/01/24 03:49

連絡が遅くなってすみません。 ご指摘ありがとうございます! 確かに、エラー文にパッケージ名が違いますね。 確認してみます!
takuan_55

2024/01/25 07:26

確かに、設定できていませんでした。 Eclipseの実行構成を一度すべて元に戻してから、設定しなおしました。 設定してパソコンを再起動したところ、動作することが確認できました。 ありがとうございました。
jimbe

2024/01/25 07:39 編集

main メソッドが多くある場合は、実行したいソースコードを表示してコード上で右クリックのメニューから実行→javaアプリケーションを選択することで実行すれば、以降はツールバーの実行ボタンもその main を実行するようになりますし、実行の構成も main になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問