##前提・実現したいこと
お世話になります。
「A fatal error has been detected by the Java Runtime Environment:」
というメッセージが出てきて、作っているゲームがEclipseから実行できなくなってしまったのでプロンプトから実行することにしました。
すると、下記のようなエラーメッセージが表示されました。
GameMain.java:17: エラー: シンボルを見つけられません Panel p = new Panel(); ^ シンボル: クラス Panel 場所: クラス GameMain
この部分はEclipseで実行できていたときから書いていましたが、今までなんのエラーも出ていませんでした。
ググったところImportができていないと表示されるそうですが、Panelクラスは同じパッケージ内にあります。同じパッケージ内であればImportはいらないはずですよね?
ちなみにcdでGameMainやPanelといったクラスが存在するディレクトリまで移動しています。
なぜプロンプトから実行するとこのようなエラーが出るのでしょうか。
よろしくお願いいたします。
##実行環境
OS:Windows10
JDK:14
Eclipse:Eclipse IDE for Java Developers - 2020-09
##追記
実際のコードを載せるようにとのご指摘がありましたのでこちらに追記いたします。
ご指摘ありがとうございます。
Mainクラス
Java
1package com.original_game.janken; 2 3import java.io.File; 4 5import javax.sound.sampled.Clip; 6import javax.swing.JFrame; 7 8public class GameMain { 9 10 public static void main(String[] args) throws Exception { 11 JFrame frame = new JFrame("じゃんけんゲーム"); 12 frame.setSize(800,600); 13 frame.setLocationRelativeTo(null); 14 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 15 frame.setResizable(false); 16 17 Panel.createPanel(frame); 18 19 frame.setVisible(true); 20 21 File file = new File("C:\Users\user\Desktop\sample.wav"); 22 Clip clip = Sound.createClip(file); 23 clip.start(); 24 clip.loop(Clip.LOOP_CONTINUOUSLY); 25 Thread.sleep(3 * 1000); 26 clip.close(); 27 28 } 29} 30
Panelクラス
java
1package com.original_game.janken; 2 3import java.awt.BorderLayout; 4import java.awt.Color; 5import java.awt.Dimension; 6import java.awt.Font; 7 8import javax.swing.JFrame; 9import javax.swing.JLabel; 10import javax.swing.JPanel; 11 12public class Panel { 13 public static JLabel headerLabel; 14 public static JLabel contentsLabel; 15 16 public static void createPanel(JFrame frame) { 17 //ヘッダーパネル 18 Dimension headerPanelDimension = new Dimension(800, 50); 19 JPanel headerPanel = setPanel(Color.GRAY, headerPanelDimension); 20 headerLabel = new JLabel("「さあ、じゃんけんで勝負だ!」"); 21 headerLabel = setFont(Color.ORANGE,headerLabel,24); 22 headerPanel.add(headerLabel); 23 frame.add(headerPanel,BorderLayout.NORTH); 24 25 //コンテンツパネル 26 Dimension contentsPanelDimension = new Dimension(800, 450); 27 JPanel contentsPanel = setPanel(Color.WHITE,contentsPanelDimension); 28 contentsLabel = new JLabel("じゃんけん・・・"); 29 contentsLabel = setFont(Color.BLACK,contentsLabel,36); 30 contentsPanel.add(contentsLabel); 31 frame.add(contentsPanel,BorderLayout.CENTER); 32 33 //フッターパネル 34 Dimension footerPanelDimension = new Dimension(800, 100); 35 JPanel footerPanel = setPanel(Color.WHITE, footerPanelDimension); 36 Player.createButton(footerPanel); 37 frame.add(footerPanel,BorderLayout.SOUTH); 38 39 } 40 41 public static JPanel setPanel(Color color, Dimension PanelDimension) { 42 JPanel panel = new JPanel(); 43 panel.setPreferredSize(PanelDimension); 44 panel.setLayout(new BorderLayout()); 45 panel.setBackground(color); 46 return(panel); 47 } 48 public static JLabel setFont(Color clr, JLabel label, int strSize) { 49 label.setForeground(clr); 50 Font labelFont = new Font("Serif", Font.BOLD,strSize); 51 label.setFont(labelFont); 52 label.setHorizontalAlignment(JLabel.CENTER); 53 label.setVerticalAlignment(JLabel.CENTER); 54 return(label); 55 } 56 } 57