36

私は Java でのプログラミングは初めてですが、すべてがどのように機能するかについては一般的によく知っています。jar ファイルと jre の両方を Windows 実行可能ファイル (exe) に入れ、配布するときにクライアントに JRE をインストールする必要がないようにしたいと考えています。どのプログラムを使用すればよいですか?

私はlaunch4jを持っていて、まさに私が望むことをしているように見えますが、アプリを実行しようとすると、「このアプリケーションはバンドルされたJavaランタイム環境を使用するように構成されましたが、ランタイムが見つからないか破損しています.」というメッセージが表示されます.

アプリをインストーラーではなく、実行可能な exe にする必要があります。少なくとも、JRE を launch4j に正しくバンドルする方法を教えてもらえますか?

4

9 に答える 9

43

JRE をバンドルできる唯一の方法は、Launch4JInno Setup Compilerを使用することでした。

まず、jre6出力ファイル (.exe) と同じディレクトリにフォルダー (たとえば) を作成します。

次に、JRE をシステムからjre6フォルダーにコピーします。

次に、Launch4J を開き、バンドルされた JRE パスを設定します。入力するだけjre6です。次に、[ビルド] ボタンをクリックします (もちろん、他のすべてのパラメーターを入力した後ですが、 [ JRE ] タブ自体に入力する必要がある値は、バンドルされた JRE パスの値だけです)。

私はそれが機能することを期待していましたが、その後.exeを新しい場所に移動すると(jre6フォルダーと同じ場所に配置されなくなります)、This application was configured to use a bundled Java Runtime Environment but theアプリケーションを実行しようとすると、ランタイムが見つからないか壊れているというエラーが表示されます...

私はこれを一日中いじっていましたが、 Launch4Jに JRE を .exe ファイルに含める方法がありませんでした。彼らのドキュメントはこの問題をまったく暗示していないように見えるので、私の意見では本当に貧弱です。

そこで、私が解決したのはInno Setup Compiler (ISC)を使用することでした。このアプリは、.exe を Windows インストーラー ファイルとしてラップするために使用されます。そこで、JRE をインストーラー パッケージにコピーする設定を ISC スクリプトに追加しました。スクリプト ([Files]セクション内) に追加した行は次のとおりです。

Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs

...ちょっとした回避策ですが、うまくいきました。

上記のすべての手順を繰り返すと、ソートされるはずです。

于 2013-03-25T16:44:32.887 に答える
2

私は Launch4J 製品を使用したことがありません。正しく構成できたことを幸運に思います。

その他のヒントについては、Sourceforge のディスカッション フォーラムにアクセスしてください。

その他の提案:

私が見た IBM (Websphere) と Oracle のほとんどの製品は、インストール ディレクトリの下に JRE を抽出し、インストールされた JRE を使用するように起動バッチ コマンドを構成するだけです。基本的に、JRE と jar ファイルは一度にインストールされます。

通常、インストール exe は既にインストールされているかどうかを確認し、既にインストールされている場合はその手順をスキップします。これは、jar ファイルのみのアップグレードに役立ちます。

ローカルにインストールすることで、互換性がないかバグを含む可能性のある独自の JRE をインストールする顧客の問題も解決されます。このようにして、既知の JRE バージョンを処理します。

アプリケーションにグラフィカル コンポーネントがない場合は、excelsior ルートで問題ありません (しばらく時間が経ちましたが、その制限は変更されている可能性があります)。他にも制限がありますが、単一の実行可能インストーラーでコードと一緒に JRE を配布する方がよいでしょう。

于 2012-12-21T21:17:17.960 に答える
-3

あなたが求めていることは、簡単に実行できるものではありません (実行可能であるとしても)。もし私があなたなら、実行可能な JAR ファイルの作成を検討します。

Java Eclipseは実行可能なjarファイルを作成します

もう 1 つのオプションは、Java Web Start を使用することです。これは、最新のブラウザーを使用していると仮定して、JNLP がユーザーに正しいバージョンの Java をインストールするように自動的に促します。

http://docs.oracle.com/javase/tutorial/deployment/webstart/index.html

于 2012-12-21T20:12:29.003 に答える