web-dev-qa-db-ja.com

Javaプログラムを実行可能ファイルにコンパイルする

可能性のある複製:
Javaプログラムの.exeを作成するにはどうすればよいですか?

Eclipseを使用して簡単なプログラムを作成したばかりで、それを実行可能ファイルにコンパイルしたいのですが、その方法がわからないようです。助けてください。

111
Meir

次の方法で、.jarファイルを.exeに変換できます。
alt text
1- JSmooth .exeラッパー:
JSmoothはJava実行可能ラッパーです。 Javaアプリケーション用のネイティブWindowsランチャー(標準.exe)を作成します。インストールされたJava Javaを単独で見つけることができるため、VMの展開がよりスムーズで使いやすくなります。 VMが利用できない場合、ラッパーは適切なJVMを自動的にダウンロードしてインストールするか、単にメッセージを表示するか、ユーザーをWebサイトにリダイレクトできます。

JSmoothはJavaアプリケーションにさまざまなラッパーを提供します。各ラッパーには独自の動作があります。フレーバーを選択してください。

ダウンロード: http://jsmooth.sourceforge.net/

2- JarToExe 1.8
Jar2Exeは、jarファイルをexeファイルに変換するツールです。 Webサイトで説明されている主な機能は次のとおりです。

  • 「コンソール」、「Windows GUI」、「Windowsサービス」の3種類のexeファイルを生成できます。
  • 生成されたexeファイルは、プログラムアイコンとバージョン情報を追加できます。
  • 生成されたexeファイルはJavaプログラムを暗号化して保護できます。プログラムの実行時に一時ファイルは生成されません。
  • 生成されたexeファイルは、システムトレイアイコンのサポートを提供します。
  • 生成されたexeファイルは、レコードシステムイベントログのサポートを提供します。
  • 生成されたWindowsサービスexeファイルは、それ自体をインストール/アンインストールし、サービスの一時停止/継続をサポートします。
  • X64バージョンの新しいリリースでは、64ビットのエグゼクティブを作成できます。 (2008年5月18日)
  • ウィザードモードとコマンドラインモードの両方がサポートされています。 (2008年5月18日)

ダウンロード: http://www.brothersoft.com/jartoexe-75019.html

3-エグゼキューター
Javaアプリケーションをjarとしてパッケージ化すると、Executorはjarをネイティブアプリケーションと区別できないWindows exeファイルに変換します。 exeファイルをダブルクリックするだけで、Java Runtime Environmentが呼び出され、アプリケーションが起動します。

ダウンロード: http://mpowers.net/executor/

編集:上記のリンクは壊れていますが、インターネットアーカイブからのページ(ダウンロード可能)があります。 http://web.archive.org/web/20090316092154/http://mpowers.net/executor/

4- Advanced Installer
Advanced Installerを使用すると、Windows MSIインストールを数分で作成できます。これにはWindows Vistaもサポートされており、他の言語でMSIパッケージを作成するのにも役立ちます。
ダウンロード: http://www.advancedinstaller.com/ JARをEXEに変換するために使用した他のツールを教えてください。

130
Sajad Bahmani

私はあなたの状況でGCJ(GNU Compiler for Java)を使用します。これはJava用のAOT(Ahead)コンパイラです。GCCはC用です。コードを解釈したり、Javaによって後で実行される中間Javaコードを生成する代わりに_ VM、マシンコードを生成します。

GCJは、ほぼすべてのLinuxシステムで、対応するパッケージマネージャー(利用可能な場合)を介して利用できます。インストール後、GCJコンパイラをパスに追加して、ターミナルから起動できるようにする必要があります。 Windowsを使用している場合は、CygwinまたはMinGWからGCJをダウンロードしてインストールできます。

ただし、C++など、コンパイルする予定の別の言語にソースを書き換えることを強くお勧めします。 Javaは、移植可能なインタープリター言語を意味します。マシンコードにコンパイルすることは、言語の開発目的に完全に反します。

31
jakogut

launch4j を使用します

ANTコマンド:

<target name="jar" depends="compile, buildDLLs, copy">
    <jar basedir="${Java.bin.dir}" destfile="${build.dir}/Project.jar" manifest="META-INF/MANIFEST.MF" />
</target>

<target name="exe" depends="jar">
    <exec executable="cmd" dir="${launch4j.home}">
        <arg line="/c launch4jc.exe ${basedir}/${launch4j.dir}/L4J_ProjectConfig.xml" />
    </exec>
</target>
18
r3zn1k

私は通常、バットスクリプトを使用します。私が通常使用するものは次のとおりです。

@echo off
set d=%~dp0
Java -Xmx400m -cp "%d%myapp.jar;%d%libs/mylib.jar" my.main.Class %*

%〜dp0は、.batがあるディレクトリを抽出します。これにより、特殊な環境変数やPATH変数の設定を必要とせずに、バットがjarの場所を見つけることができます。

編集:クラスパスに引用符を追加しました。そうでなければ、ジョーイが言ったように、「楽しいことはスペースで起こりうる」

3
Itay Maman

Jsmoothは、Linuxでantを使用すると、うまく機能し、簡単にスクリプト化できることがわかりました。最初に1つのjarでマルチファイルアプリケーションを収集するために、1つのjar(Linuxでantを使用して簡単にスクリプト化可能)を使用することもできます。

私たちは主に、「ちょっと、あなたはJavaバージョンXが必要です。ダウンロードするにはここに行ってください」機能と組み合わせたEXEの簡単な展開が必要でした。

(ただし、必要になる可能性が最も高いのは、標準Javaの「実行可能なjar」/「実行可能なjar」機能です)。

できることは、作成された.jarファイルを実行する.batを作成し、JREが存在するかどうかを確認することです。

ミッチの便利なリンクから( source

Java -classpath myprogram.jar de.vogella.Eclipse.ide.first.MyFirstClass

これはバッチに使用できます...

1
Vincent B.

それを行うプログラムは少数ですが、TowerJは思い浮かぶものです(Googleに任せます)が、かなりの費用がかかります。

私が見つけたこのトピックの最も有用なリファレンスは次のとおりです。 http://mindprod.com/jgloss/nativecompiler.html

他のいくつかの製品、および同じ目的を達成するための代替品についても言及しています。

0
Carl Smotricz