• ベストアンサー

Javaアプリケーションをフリーソフトのようにするには

Javaでアプリケーションを作成したのですが、アプリケーションを実行するにはコマンドプロンプトから  javac ***.java とコンパイルして、( ***.java はファイル名 )  java *** としてアプリケーションを実行しますが、ウェブ上に転がっているフリーソフトのようにダウンロードして解凍するとインストーラがあってインストーラを起動することによって既存のプログラムに追加し、コマンドからアプリケーションを起動したり、すべてのプログラムから選択することで起動したりというように作成したJavaアプリケーションにインストーラを付与する方法はあるんでしょうか? フリーソフトの中にはJavaで作成されたアプリケーションもありそうな気がするので、作成できるのだと思うのですが、ネットで探してもそのような記事は見つからず困っています。フリーソフトとして公開してみたいので...。知っている方教えてください。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.4

 ふむふむ。Macは使った事ないので知らんのだが、UNIXとWindowsで動作させるとすると、#3さんのおっしゃるとおり、Windows バッチとシェルスクリプトを両方書いて置いておくという方法が一般的じゃないのかな。  たとえば、Jakarta ApacheのTomcatなんかそうだよね。Tomcatを起動、終了するシェルスクリプトとバッチファイルを一緒に入れてtar.gzで固めてある。また、Tomcatはそれとは別にWindows専用にインストーラー付の奴も配布している。  結局これに習って(最終的な配置は同じとしても)Windows専用の配布物(インストーラー付)、Windows、UNIX共用の配布物(tar.gzやZIP)を両方用意するような形になるのではないでしょーか。  便利なインストーラーも良いけど、#3さんも「同梱」と表現しているように、やはりUNIX用には、実行できる形のディレクトリ構造そのままtar.gzないしはtar.bz2で固めて、/usr/localで開いてね、ってのが、その~、流儀、というか、一般的じゃないのかな。

marucha
質問者

お礼

アドバイスありがとうございます。 インストーラがあれば、ユーザにとっての利便性を高めたかったんで、そうしたかったんですが、無理ならあきらめて、バッチファイル、シェルスクリプトにしたいと思います。 詳細なアドバイスありがとうございました。

その他の回答 (3)

回答No.3

バッチプログラムを同梱しておけばいいのでは? UNIX系だとシェルスクリプト

marucha
質問者

補足

ShellScriptの参考サイトを見て作成しました。 #! /bin/sh # 環境変数の設定(略) java Test こんな感じに、環境変数の設定後、Javaを起動するようにしましたが、これでインストールしたといえるでしょうか?(シェルスクリプトではこれが限界?)もし、やり方が間違っているなら補足お願いします。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

 Windowsの場合はInstall Shieldなどのインストーラー作成ソフトを使うのが良いでしょう。  インストーラーのお仕事は、 ・ファイルの配置 ・環境設定 ・スタートメニュー、デスクトップ、クイック起動へのショートカット作成 ・アンインストーラーの設定 になる。  Microsoft Windows Installer、Install Shield、Install Anywhere、ExePressなど、自分の好みにあったソフトを使えば良いだろう。  Javaアプリでインストーラーをつける場合、バッチファイルへのショートカットを作成するパターンが多いと思われる。  Java Web Startなども調べてみると面白いかも知れません。

marucha
質問者

補足

回答ありがとうございます。 動作OSは、Windows,Mac,UNIXで動くものを作りたいんです。 質問内容に不備があったことを謝ります。 OSのことを考えるとやはりJava Web Startなのでしょうか?

  • bnosuke-x
  • ベストアンサー率39% (43/110)
回答No.1

JavaWebStartを使ってみてはいかがでしょう?

marucha
質問者

補足

ここ数日でJavaWebStart関連の記事は見ましたが、Jarへのセキュリティ関連の署名が必要で、署名をさせるには、なんらかの権利を購入しなければならないらしく、お金はかけたくないので断念しました。

関連するQ&A

  • Javaアプリケーション内でコンパイルはできますか?

    Javaアプリケーションから、シェルにアクセスして、Javaプログラムをコンパイルおよび実行したいのですが、できますか? 具体的には、例えば、JavaアプリケーションのメインフレームにJavaプログラムを記述するテキストエリアがあってユーザはそこにJavaプログラムを記述し、任意の名前で保存できるとします。また、メインフレームには、コマンドを実行するテキストフィールドがあり、ユーザは保存したプログラムをそこからコンパイルできる。つまり、そのテキストフィールドに、 javac xxxxx.java と入力するとコンパイルでき、 java xxxxx とすると実行できる。 このようなことをしてみたいのですが、JavaアプリケーションからWindowsもしくはUNIXのシェルと連携させることはできますでしょうか?ご存知の方よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaでコンパイルができません。

    Javaでコンパイルができません。 コマンドプロンプトで操作しています。 コマンドプロンプトでjavacと打つと… 'javac'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。 このように表示されてしまいます。 私にはなぜコンパイルができないのか分かりません。 分かる方がいたら、ぜひ教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javaのコンパイルについて

    java初心者なのですがコンパイルができません! コマンドプロンプトでjavac Hello.javaと入力すると、内部コマンドまたは外部コマンド、操作可能なプログラムまたはパッチファイルとして認識させていません、とでてきて実行できません。 環境変数でパスの設定をしてたのですが何回も見直しても間違ってないのに、コマンドプロンプトで  [Path]\javac.exe-help  と入力すると指定されたパスは見つかりませんと出てきます。 ちなみに環境変数のところには行末に、 ;C:\Program Files\Java\jdk1.6.0_07\bin と入力しました。 何が問題なのでしょうか??ちなみに,version 6 update 7 です。 わかる方是非返答お願いします!!

  • java 実行コマンドについて

    java の実行コマンドについての質問です。java実行コマンドでは実行したいファイルを相対パスで指定できないのでしょうか? 具体的には、 現在、実行したいプログラムは ~/program/sample/Test.class となっています。 カレントディレクトリは~/programで、次のようなコマンドを行いました。 ~/program$ java sample/Test すると Exception in thread "main" java.lang.NoClassDefFoundError: sample/Test (wrongname: Test) という例外が出ました。 ~/program$ java -classpath sample Test を行えば実行できるのですが、java実行コマンドでは相対パスで実行ファイルを指定することはできないのでしょうか? (javacコマンドでは相対パスでコンパイルできる、つまりコンパイルしたいファイルが~/program/sample/Test.javaならば ~/program$ javac sample/Test.java でコンパイルできるので、これの類似でjavaコマンドでも相対パスで実行できるのではないかと考えたのですが。)

    • ベストアンサー
    • Java
  • Javaでコンパイルできなくなりました

    javaでコンパイルできなくなりました。今まではJava2 SDK バージョン1.4.2_03をインストールしてコマンドプロンプトからjavac、javaコマンドを用いコンパイル、実行していました。 そして、Eclipse(バーション3.0)というIDE環境に興味を持ちインストールした後にとりあえずもう一度コマンドプロンプトからjavacコンパイルしてみたらエラーがでるようになりました。 ソースを書くと長くなってしまうので簡単に説明すると、String sに"Hello World"を代入してSystem.out.println()で表示させるだけのプログラムです。Eclipseをインストールする前は実行できたのでソースに問題があるという事はありません。エラーメッセージは以下のような感じでした //エラーメッセージ 検出値 : java.lang.String 期待値 : String String s = "Hello World"; その後にソースで String s="Hello World";としていた行を java.lang.String s = "Hello World";に変更しました するとjavacではエラーが出なくなるのですがjavaコマンドで実行すると Exception in thread "main" java.lang.NoSuchMethodError: main というメッセージが出て実行できないです。 環境変数は、SDKインストール後、PATHC:\j2sdk1.4.2_03\bin;を加え、Eclipseインストール後は何も変更していません。 何が問題なのでしょうか?お願いします。

    • ベストアンサー
    • Java
  • Java コンパイル

    Javaの勉強を始めたばかりなのですが、コンパイルして実行する際には毎回コマンドプロンプトに(javac ファイル名.java)と(java ファイル名)を入力しないといけないのでしょうか? ちょっとした変更をして何回もコンパイルして試したい時なんかに何回も入力してやるのは面倒な気がして・・・ 普通こうやってやるものなのでしょうか? 教えてくださいm(_ _ )m

  • JavaでPATH設定を修正する方法を教えて下さい

    Window7マシンにJava SE Development Kit 8(jdk-8u74-windows X64.exe)をインストールしました。 環境変数PATHの設定で、システム環境変数の中にすでに「Path」がありました。選択後の「編集」段階で最初から入力されている部分を消さないで最後のところに下記を追加すればよかったのですが、一部を消して編集してしまいました。 C:\Program Files\Java\jdk1.8.0_74\bin; これが原因してかどうか不明ですが、javacコマンドを実行してjavaソースプログラムをコンパイルすると、また「C:\>javac –version」とバージョン確認をしても、「'javac' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」のメッセージが表示されてしまい、コンパイルをすることもバージョン確認もできません。 因みに、javac.exe は、CドライブのProgram Files\Java\jdk1.8.0_74\bin にあり、次のようにしてバージョン確認をするとjavac 1.8.0_74と表示されて、バージョンが確認できます。 C:\Program Files\Java\jdk1.8.0_74\bin>javac –version インストールしたJava SE Development Kit 8 をアンインストールした後に、再度インストールして、PATHの設定・編集をしなおそうとしたのですが、アンインストール前に設定した PATH のままで修正はできませんでした。 次のように通常のjavacコマンドを実行してjavaソースプログラムをコンパイルするには、PATHの設定をどのようにすればよいかを教えてください。 C:\>javac Hello.java 或いは、PATHの修正ができない場合は、javaソースプログラムをコンパイルするには、どのようにすればよいかを教えてください。 尚、環境変数「JAVA_HOME」を、「変数名」を「JAVA_HOME」、「変数値」を「C:\java\jdk1.8.0_74;」として、JDKをインストールしたディレクトリに合わせて新規に設定していますが、コマンドプロンプトを起動し「set JAVA_HOME」と入力し実行したところ、JAVA_HOME=C: JAVA\ jdk1.8.0_74; と表示され、その後、「C:\>java –version」とjavaのバージョンを確認したところ、正常に確認できています。

    • ベストアンサー
    • Java
  • JAVAのコマンド

    JAVAをやりたくて本のおまけCDROMからJDKを取り入れました。 コマンドプロンプトでjava -versionを入力するときちんと JDK~。とでて使える状態になっています。 しかし実際にJAVAファイルをつくってコンパイルしようとし javac ファイル名 と入力するとそのようなコマンドはありませんと 言われます。コマンドが使えない状態です。 アプリケーションが中途半端でインストールされたのでしょうか? もしわかったら教えてください。 当方WIN98se VAIO使っています。 JDKは1.3.1_02を使っています。

    • ベストアンサー
    • Java
  • 「やさしいJava」で勉強していますが、コンパイラが起動しません。

    コマンドプロンプトで javac Sample1.java というコマンドを実行すると、 "'javac'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。" とでてしまいます。 もう少し状況を説明しますと、 OSはXPsp2で、まずは本に書いてあるとおり、JDKの最新バージョンj2sdk1.4.2_09をC:\j2sdk1.4.2_09にインストールしました。 そしてユーザー環境変数を PATH C:\j2sdk1.42_09\bin と編集もしました。 そしてソースファイルをつくり、 C:\Documents and Settings\ユーザー名\My Documents\Sample1.java と保存しました。 そしてコマンドプロンプトに C:\Documents and Settings\ユーザー名\My Documents>javac Sample1.java と実行すると、前記のようにコンパイルできません。 自分で少し調べたのですが、コマンドプロンプトに"java -version"を実行させてみたら、なぜか'java version "1.5.0_04"'となってしまい、j2sdk1.4.2_09をインストールしたのにおかしいな?と思っています。 皆様、コンパイラできるようにご助言くださいますようよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Javaアプリケーションとは?

    Java Runtime Environmenとは、どのような時に必要ですか? ソフト紹介サイト「窓の杜」では、http://www.forest.impress.co.jp/lib/arc/runtime/runtimeapp/javaruntime.html ”IEやNetscapeなどのWebブラウザーにはJavaランタイムが組み込まれているため、Webブラウザー上で動作する“Javaアプレット”と呼ばれるプログラムを実行する場合は必要ないが、Webブラウザーとは無関係に起動できる“Javaアプリケーション”と呼ばれるプログラムを実行する際に必要となる。”と書かれています。 Javaアプリケーションに必要と書かれていますが、具体的な例はありますか? よろしくお願いします。

    • ベストアンサー
    • Java