- 締切済み
eclipseで以下のようなプログラムを書いて、それをjar形式でエクスポートしました。
eclipseで以下のようなプログラムを書いて、それをjar形式でエクスポートしました。 しかし、そのjarファイルをクリックして開こうとすると「could not find main class」と出てききます。どうすればいいのでしょうか public class GameTestMain { /** * @param args */ JFrame frame1; BufferStrategy bstrategy; int count = 0; BufferedImage backimage1, backimage2; GameTestMain() { frame1 = new JFrame("ノベルゲーム"); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setBackground(Color.WHITE); frame1.setResizable(false); frame1.setVisible(true); Insets insets = frame1.getInsets(); frame1.setSize(600 + insets.left + insets.right, 400 + insets.top + insets.bottom); frame1.setLocationRelativeTo(null); frame1.setIgnoreRepaint(true); frame1.createBufferStrategy(2); bstrategy = frame1.getBufferStrategy(); try { backimage1 = ImageIO.read(getClass().getResource("img1.jpg")); backimage2 = ImageIO.read(getClass().getResource("img2.jpg")); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } Timer t = new Timer(); t.schedule(new MyTimerTask(), 10, 500); } public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ GameTestMain gtm = new GameTestMain(); } class MyTimerTask extends TimerTask { public void run() { Graphics g = bstrategy.getDrawGraphics(); if (bstrategy.contentsLost() == false) { Insets insets = frame1.getInsets(); g.translate(insets.left, insets.top); g.drawImage(backimage1, 0, 0, frame1); g.setFont(new Font("Selif", Font.PLAIN, 40)); drawStringCenter("秒速1キロメートル", 100, g); bstrategy.show(); g.dispose(); } } } void drawStringCenter(String str, int y,Graphics g) { int fw = frame1.getWidth() / 2; FontMetrics fm = g.getFontMetrics(); int strw = fm.stringWidth(str) / 2; g.drawString(str, fw-strw, y); } }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- HarukaV49
- ベストアンサー率53% (48/89)
Eclipseで、Jarファイルを作成する場合には、基本的にマニフェストファイル仕様を 全く意識しなくてもその作成が可能になっています。 >「could not find main class」 これは、mainメソッドの位置を設定していないためだと思われます。 JARエクスポートの4番目の画面”JARマニフェスト仕様”の画面の最下部、 アプリケーションのエントリー・ポイントのクラスを指定 メイン・クラス のテキストフィールドに、明示的にmainメソッドの位置を指定する必要があります。 クラスファイルが1つしかない、メインメソッドはプロジェクト内に1つしかない 等に関係なく、指定しないと起動ファイルは作成できません。 MSのC#等のIDEだと、アプリケーションを作成する場合、何も考えずにボタンを 押していけば、基本的なフレームの生成からインストーラ(setup.exe)まで、 全自動で生成してくれますが... 考え方の違いで、Eclipseでは、ユーザが指定しない限り何も作成されません。 ソフトウェア開発に慣れた人にとっては、勝手なことをしない、Eclipseの方が 好まれるという意味もあるでしょう。 初心者の人にとっては、Javaの開発環境はちょっとしきいが高いです。 もう少し、初心者の気持ちを汲んであげても良い気はしますが。 でもそこを乗り切れば、断然快適になります。
- auty
- ベストアンサー率58% (284/486)
jarファイルを実行するには、マニフェストファイルを利用してそのjarファイルを作成しておく必要があります。 >>> jarファイルをクリックして開こうとする これは、「jarファイルの実行」を意味するのでしょうか。ecipseで作成するには、 以下のページを参考にしてみてください。 http://www.ipe.tsukuba.ac.jp/~endo/JARfile.pdf 一般知識とコマンドプロンプトで作成するには、 http://www.fk.urban.ne.jp/home/kishida/kouza/old/javajar.html http://www.ne.jp/asahi/hishidama/home/tech/java/jar.html また、ファイルの関連付けは、Windowsのバージョンにもよると思いますが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1622577 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=24020&forum=12&2 を参考にしてください。
お礼
回答ありがとうございます。 早速参考にさせていただきます。