前提・実現したいこと
javaのプログラミングの練習にてeclipseを使いアプリ開発をしていて、実行可能jarファイルの作成をしたのですが、実行できません。
まだ始めたばかりの初心者なので、わからないことや知らないことが多いですがよろしくお願いします。
発生している問題・エラーメッセージ
C:\Users\Documents\program>java Java Tetris エラー: メイン・クラスJavaを検出およびロードできませんでした 原因: java.lang.ClassNotFoundException: Java
階層情報
Tetris ├ bgm ├ bin ├ img ├ se ├ src │ ├ GameMode.java │ ├ TetriMino.java │ ├ Tetris.java ←ここにMainメソッド │ ├ TitleMode.java │ ├ Window.java
メインメソッドのコードは以下の通りです。
Tetris
1import java.io.File; 2import java.io.IOException; 3import java.net.MalformedURLException; 4 5import javax.sound.sampled.AudioFormat; 6import javax.sound.sampled.AudioInputStream; 7import javax.sound.sampled.AudioSystem; 8import javax.sound.sampled.Clip; 9import javax.sound.sampled.DataLine; 10import javax.sound.sampled.FloatControl; 11import javax.sound.sampled.LineUnavailableException; 12import javax.sound.sampled.UnsupportedAudioFileException; 13 14public class Tetris { 15 static Clip bgm = createClip(new File("bgm/bgm.wav")); 16 static Clip select = createClip(new File("se/select.wav")); 17 static Clip decision = createClip(new File("se/decision.wav")); 18 static Clip setmino = createClip(new File("se/setmino.wav")); 19 static Clip count = createClip(new File("se/count.wav")); 20 static Clip start = createClip(new File("se/start.wav")); 21 static Clip down = createClip(new File("se/down.wav")); 22 static Clip move = createClip(new File("se/move.wav")); 23 static Clip round = createClip(new File("se/round.wav")); 24 static Clip shakin = createClip(new File("se/shakin.wav")); 25 static Clip don = createClip(new File("se/don.wav")); 26 static Clip tspin = createClip(new File("se/tspin.wav")); 27 static Clip tst = createClip(new File("se/tst.wav")); 28 static Clip tss = createClip(new File("se/tss.wav")); 29 static Clip gameover = createClip(new File("se/gameover.wav")); 30 static Clip hold = createClip(new File("se/hold.wav")); 31 static Clip tsd = createClip(new File("se/tsd.wav")); 32 static Clip tetris = createClip(new File("se/tetris.wav")); 33 static Clip harddrop = createClip(new File("se/harddrop.wav")); 34 static FloatControl setminovl = (FloatControl)setmino.getControl(FloatControl.Type.MASTER_GAIN); 35 static Window wn = new Window("Tetris", 550, 750 ); 36 37 public static void main( String[] args ) { 38 39 int i = 0; 40 while ( i == 0 ) { 41 if ( wn.change ) { 42 wn.getContentPane().removeAll(); 43 wn.add(wn.getJPanel()); 44 wn.setVisible(true); 45 wn.removeKeyListener(wn.getremovekey()); 46 wn.addKeyListener(wn.getkey()); 47 wn.startGameLoop(); 48 wn.change = false; 49 } 50 try { 51 Thread.sleep(100); 52 } catch (InterruptedException e) { 53 e.printStackTrace(); 54 } 55 } 56 } 57 58 public static Clip createClip(File path) { 59 //指定されたURLのオーディオ入力ストリームの取得 60 try ( AudioInputStream ais = AudioSystem.getAudioInputStream(path)) { 61 62 //ファイル形式の取得 63 AudioFormat af = ais.getFormat(); 64 65 //単一のオーディオ形式を含む指定した情報からデータラインの情報オブジェクトを構築 66 DataLine.Info dateLine = new DataLine.Info(Clip.class,af); 67 68 Clip c = (Clip)AudioSystem.getLine(dateLine); 69 70 c.open(ais); 71 72 return c; 73 } catch (MalformedURLException e) { 74 e.printStackTrace(); 75 } catch (UnsupportedAudioFileException e) { 76 e.printStackTrace(); 77 } catch (IOException e) { 78 e.printStackTrace(); 79 } catch (LineUnavailableException e) { 80 e.printStackTrace(); 81 } 82 return null; 83 } 84 85 static void controlvolume(FloatControl control,double linearScalar) { 86 control.setValue((float)Math.log10(linearScalar) * 20); 87 } 88 89}
試したこと
階層を指定する必要があると聞いたのでやってみましたがうまくできませんでした。
java Java src/Tetris
また、そもそもeclipseの実行可能jarファイルのエクスポートではMainを指定するので、ほかの要因なのかなと思いました。
補足情報
eclipse でのJREはC:\Program Files\Java\jre-9.0.4です。
またjavaのバージョンは以下の通りです。
C:\Users>java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/11 01:59