• 締切済み

Javaの実行ファイルからjarを生成する方法を、わかりやすく教えてく

Javaの実行ファイルからjarを生成する方法を、わかりやすく教えてくだされば。 現在JavaベースのRPG製作ソフトを作成しているのですが、製作ソフトから実行可能jar形式で実行プログラムを生成する方法を探しています。 jarファイルをzipと同じ形式で、META-INFなどのフォルダ、クラスファイル、マニフェストファイル、画像ファイルなどを出力すればいいと思うのですが、それよりもてっとりばやく簡単に作成する方法は無いのでしょうか。 あるいはjarにファイルを追加する簡単な方法とか...お願いします。

  • Java
  • 回答数4
  • ありがとう数4

みんなの回答

noname#130824
noname#130824
回答No.4
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「SDK を入れてもらう」のが一番簡単かつてっとりばやいと思うなぁ. Java のプログラムで jar ファイルを扱うことは可能なので理論上「jar ファイルを扱うクラス一式」もまとめた形にはできるんだけど, それを Oracle が許してくれているかどうかは知らない. あと, その気になって自前で jar ファイルを扱う機能をつけたとして, それで作ったものを「jar ファイル」と呼んでいいか (Oracle が「jar ファイル」と呼ぶことを許してくれているか) どうかも知らない.

aska-c
質問者

お礼

ぬぬぬ、微妙なところですかね。 SDKが必要となると、敷居が上がってしまうような気がするのですよ。 やっぱり「ZIP仕様でjarを自動生成」ですかね...。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

jar -cvf jarファイル名 パッケージトップディレクトリ

aska-c
質問者

お礼

お返事ありがとうございます。 でも、この方法だとJavaの開発環境を持っていないとできませんよね(一分ほど調べた結果です。誤りがなければよいのですが)。 このソフトウェアのユーザは、Javaの実行環境だけを持ち合わせていると思いますから。

関連するQ&A

  • Jarファイルについて

    Jarファイルについて質問があります。 XalanやXercesなどは、Jarファイルとして提供されていて、 classpathに通してJavaプログラム内で使用するわけですが、 実行の際Jarファイルは一度解凍されてから、JVM内に読み込まれるのでしょうか? JarファイルはZipと同様の圧縮形式だと認識してますので、 解凍してから実行されるのだろうと思ってます。 どなたかご教授願いますでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 実行可能jarファイルについて!

    実行可能jarファイルについて! java -jar Foo.jar Foo というやり方で、実行可能jarファイルにあるクラスの中から実行するクラスを指定できるという記述があったので、試してみたのですが、うまくいきません。 http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/java_primer/ExecutableJarfile.html どうしても、マニフェストファイルに書かれたクラスが実行されてしまいます。 マニフェストファイルはこちらの内容になります。 Manifest-Version: 1.0 Rsrc-Class-Path: ./ geronimo-jta_1.1_spec-1.0.jar s2-dao-1.0.49.jar co mmons-logging-1.1.jar poi-3.0-FINAL.jar aopalliance-1.0.jar s2-dao-ti ger-1.0.49.jar junit-3.8.2.jar teeda-core-1.0.13-sp7.jar geronimo-ser vlet_2.4_spec-1.0.jar cglib-nodep-2.1_3.jar s2-extension-2.4.40.jar s 2-tiger-2.4.40.jar easymock-2.4.jar teeda-webunit-0.2.2.jar teeda-aja x-1.0.13-sp7.jar teeda-tiger-1.0.13-sp7.jar ojdbc6.jar easymockclasse xtension-2.4.jar commons-lang-2.4.jar javassist-3.4.ga.jar teeda-xmlu nit-0.1.0.jar log4j-1.2.13.jar teeda-extension-1.0.13-sp7.jar ognl-2. 6.9-patch-20090427.jar junit-4.4.jar junit-addons-1.4.jar s2-framewor k-2.4.40.jar h2-1.0.69.jar Class-Path: . Rsrc-Main-Class: jp.co.tsys.sfi.batch.execute.TagOutputExecute Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader jarファイルは、Eclipseの実行可能jarファイルの出力で、エクスポートしました。 よくみると、Main-ClassがEclipseのクラスになっているので、そこが違うのかな、と予想しています。 なぜ、Eclipseのエクスポートを使っているかというと、ライブラリのjarファイル群をjarファイルに取り込むのに便利だと思ったからです。 →これさえできれば、ほかの方法で構いません。 どうかよろしくお願いします!

    • ベストアンサー
    • Java
  • jarファイルの起動方法

    jarファイルを作成して、ダブルクリックで起動できる ようにしたいのですが、作成したjarファイルをクリックしても何の反応もありません。エラーメッセージが 出るわけでもなく、ただ、プログラムが実行されないのです。jarファイルの作成過程は以下のとおりです。 jar cf temp.jar testclass.class jar ufm temp.jar manifest.txt マニフェストファイルの最後には改行をいれてあります。

    • ベストアンサー
    • Java
  • jarダブルクリックで実行できません

    自作のjarファイルだけがダブルクリックで実行できません。長い時間はまっております。お助けください。 javaアプリを配布するためにexeを作ろうと、まずjarファイルを作ってみました。 どんな状況かと申しますと ・他の方が作られたjarファイルはダブルクリックで実行可能です。 ・自作のjarファイルはダブルクリックで実行できません。 「could not find the main class: ○○ Program will exit」 ・自作のjarファイルはコマンドプロンプトの 「java -jar ○○.jar」で実行されます。 そこでお聞きしたいのが下記URLのゲームに関してです。 http://www.ipl.co.jp/item/JavaShootingGame.html 問題点を探るために、まず公開されているソースをコンパイルし、jarを生成しました。 マニフェストファイルには「Main-Class: Game」を改行付きで加え自作しました。 上記の自作jarのようにダブルクリックで実行できず、 コマンドで実行できます。 次に、公開されているjarを「xvf」コマンドで解凍するとdatファイルと 色々書かれたMANIFEST、 classファイルがでてきました。 ためしに、datを削除し、MANIFESTを自作のものに上書きしました。 これで上記と同条件のはずですが、これでつくったjarファイルは なんとダブルクリックで実行できます。 Classファイルを逆コンパイルしてソースを比べる。 Eclipseで生成する。 マニフェストにClass-Pathをあらゆるところに通してみる。 以上失敗しました。 この2週間こればかりで、正直気がめいりそうです。 対処法も尽きてしまいました。 どうかお助けください。

    • ベストアンサー
    • Java
  • javaの実行形式jarファイルでの出力について

    Windows環境でEclipseを使用してJavaの勉強を行なっています。 実行形式のjarファイルを生成して、サンプルプログラムは動くようになったのですが、コマンドプロンプトに何も表示されないのです。 例えば、System.out.println("abc"); という命令も、全く無視されてしまいます。 どうすればこのコマンドプロンプトに表示できるのでしょうか?

    • ベストアンサー
    • Java
  • Jarファイルのマニフェストについて

    マニフェスト内でMain-Classを指定してJarファイルを作成した場合、EXEに近い仕組み(Jarファイルをダブルクリックでプログラムが実行可能)が実現しますが、この際、マニフェスト内でMain-Classに渡すArgmentsやJavawに適用するオプション(-Dなど・・)を指定することは可能なのでしょうか? また可能な場合、どのように指定すればよいのでしょうか?

    • ベストアンサー
    • Java
  • Javaの実行可能圧縮ファイル、*.jarアイコンに画像を付ける。

    Javaの実行可能圧縮ファイル、*.jarアイコンに画像を付ける。 eclipse3.5で実行可能jarをエクスポートして作成しています。 *.jarアイコンに画像を設定する方法を知りたいです。 ご存知の方がおられましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • jarファイルをダブルクリックで実行したいのですが

    こんにちは。今、Windows Vistaと、Java SE 6 UPDATE 4でJavaの勉強をしているのですが、以前書籍を読んでjarファイルを作った時は、コマンドラインからしか実行しなかったのですが、どうもダブルクリックでも実行できるような事が各サイトに載っていましたので、あるサイトを参考にHelloWorld.jarというファイルを作ったのですが、コマンドラインからは動作できますが、ダブルクリックしても「このファイルを開けません」というダイアログボックスが出てきたので、「インストールされたプログラムの一覧からプログラムを選択する」でjavaw.exeを選んだりjava.exeを選んだりして実行してみたのですが、コマンドラインが一瞬立ち上がってすぐに消えたり、「Could not find the main class. Program will exit.」というダイアログが出現したりして実行できませんでした。 MANIFEST.MFは、 Manifest-Version: 1.0 Main-Class: HelloWorld と記述してます。 コマンドラインでjarファイルを作った時のコマンドは、 jar cvfm HelloWorld.jar MANIFEST.MF *.class です。 コマンドラインからでは、java -jar HelloWorld.jarで動作しています。 HelloWorld.jar をラカで解凍したら、HelloWorldフォルダ直下に、HelloWorld.classとMainPanel.classとMETA-INFフォルダ、 META-INFフォルダの中にMANIFEST.MFがあり、中身は、 Manifest-Version: 1.0 Created-By: 1.6.0_04 (Sun Microsystems Inc.) Main-Class: HelloWorld  となっていました。 もし悪い所がございましたら、アドバイスの方よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Jarコマンドでマニフェストファイルを更新

    jdk 1.6.0.26のjarコマンドを使って、既存のjarファイルのマニフェストファイルを更新したいのですが、下記のように警告が表示されてしまいます。 (下記例は、既存のtest.jarにマニフェストファイルmanifest.txtを更新する例です) >jar uvmf manifest.txt test.jar 2011/08/15 1:54:26 java.util.jar.Attributes read 警告: Duplicate name in Manifest: Main-Class. Ensure that the manifest does not have duplicate entries, and that blank lines separate individual sections in both your manifest and in the META-INF/MANIFEST.MF entry in the jar file. 2011/08/15 1:54:26 java.util.jar.Attributes read 警告: Duplicate name in Manifest: Class-Path. Ensure that the manifest does not have duplicate entries, and that blank lines separate individual sections in both your manifest and in the META-INF/MANIFEST.MF entry in the jar file. マニフェストが更新されました。 ちなみに、既存のtest.jarのマニフェストファイルの内容は、下記のようになっており、 Main-Class: jp.main.MainClass Class-Path: hello.jar manifest.txtの内容は、下記のようになっています。 Main-Class: jp.main.MainClass Class-Path: hello2.jar つまり、Class-Pathの所を別なjarファイルに書き換えたいわけです。 上記のjarコマンドで、警告はでますが、実行するとhello2.jarが動作しているようなので、大丈夫なのですが、警告が出るということは、やり方が悪いのでしょうか?

    • ベストアンサー
    • Java
  • Eclipseで、配布可能なJARファイルを作成する方法が解りません。

    Eclipseで、何も無いウインドウを開くというだけのアプリケーションを作ろうとしました。 ライブラリに、 org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar を追加しております。 配布できる形式にしたいため、Jarファイルを作成しました。 プロジェクトにMETA-INFというフォルダを作成し、そこに「Manifest.mf」というファイルを作成し、以下のように記述しました。 Manifest-Version: 1.0 Class-Path: "C:\eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar" Main-Class: view.TestWindow ちなみに、「view.TestWindow」というのがmainメソッドのあるクラスの名前です。 JARファイルをエクスポートして、コマンドライン上から以下のように入力しました。 > java -jar TestWindow.jar 結果は、以下のようなエラーが表示されました。 Failed to load Main-Class manifest attribute from TestWindow.jar 多分、「Main-Class」の情報がマニフェストファイルから見つからないと言っているんだと思いますが、Eclipse上からエクスポートする際にはちゃんと場所を指定しています。何が問題なのか解りません。 将来的には、違うマシン上で動作するアプリケーションを作りたいと思っているのですが、最初でいきなり躓いてしまいました。 どなたか教えて頂けないでしょうか。

    • ベストアンサー
    • Java

専門家に質問してみよう