izpackでインストーラーを作成します。.jar ファイルにあります。配布するために、.exeファイルで作成したいと考えています。どうすれば簡単にできますか?
3 に答える
Andrewは常に最初からJavaWebStartテクノロジーを宣伝するのが好きです:)それは素晴らしいテクノロジーです。ただし、技術的な部分をいじり始める前に、まず技術的な部分を学ぶ必要もあります。
それ以外の場合は、次のような古いスタイルのEXE配布モデルが残ります...
とにかく私はIzpackに精通していません。ただし、 izPackで何ができるかについては、組み合わせた結果を達成するための同様の個別のツールがあります。私のお気に入りのEXE作成およびインストーラーツールは、EclipseIDEから実行されるLaunch4J + InnoSetup + Antタスクです。
Launch4JはJavaアプリランチャーです。 InnoSetupは、インストール作成者の Antタスクであり、開発者がビルドと統合の手順を実行するのに役立ちます。
Launch4J + InnoSetup+Antビルドタスク+EclipseIDEの使用方法: http ://www.eteks.com/tips/tipCreationExe.html (フランス語-Google翻訳を使用)
デスクトップベースのWindowsEXEファイルをJavaアプリに配布することを考えている場合は、ターゲット環境についても考慮する必要があります。WindowsXP以下のバージョンをターゲットにしている場合は問題ありません。ただし、WindowsVistaおよびWindows7で正しく動作させたい場合は、大きなフラストレーションになり始めます。
%ProgramFiles%
Windows Vista / Windows 7では読み取り専用フォルダーになっているため、保存が必要なアプリケーション構成や一時ファイルなどは保存しないことをお勧めします。そのような目的のためにユーザーのプロファイルフォルダを使用してください。
もちろん、「管理者として実行」でアプリを実行することでバイパスできますが、次の設定が必要です。
WindowsVistaおよびWindows7は、ユーザーアクセス制御(UAC)プロンプト機能を介して厳密なユーザーアクセスポリシーを導入しました。ソフトウェアのインストールは、Administratorsグループのユーザーアカウントを使用して実行する必要があります。デフォルトのWindowsシステムで
Program Files
は、すべてのフォルダが読み取り専用に設定されており、管理者以外のユーザーアカウントに何かを保存しようとすると、問題が発生する可能性があります。管理者以外のユーザーアカウントを使用してJavaアプリを実行するには、アプリケーションのプロパティを有効に設定する必要がありますRun as administrator
。デスクトップにショートカットを作成し、Run as administrator
同様に有効にするように設定する必要があります。
次の問題を解決する方法:
(1)AppUserModelID
Windows Vista / Windows 7でのJavaサポートの問題には、次の解決策が必要です:
Launch4j、NSIS、および重複して固定されたWindows7タスクバーアイコン
(2)Javaアプリの問題にRun as Administrator
は、次の解決策が必要
です。WindowsVistaでJavaアプリの管理者権限を要求する
それ以外に、%ProgramFiles%
64ビットWindows版で実行する場合も確認する必要があります。パスは、32ビットWindowsと64ビットWindowsで同じではありません。64ビットWindowsでは、すべての32ビットアプリがになります%ProgramFiles(x86)%
。
したがって、にインストールされているJavaアプリのフォルダとサブフォルダへのハードコードされたファイルパス値を使用する場合は注意が必要です%ProgramFiles%
。次のISSファイルスニペットでInnoSetupWindows environment variable
によって生成できるを設定することをお勧めします。Javaを使用して変数を取得します。System.getenv("MYAPP_HOME")
[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; Flags: uninsdeletevalue; ValueType: string; ValueName: "MYAPP_HOME"; ValueData: "{app}\"
[Tasks]
Name: modifypath; Description:"Add application directory to your environmental path"; Flags: unchecked
[Run]
Filename: "{app}\MyApp.EXE"; Parameters: """{app}""\"; WorkingDir: "{app}\"; Description: "Run MyApp"; Flags: postinstall nowait skipifsilent
[Code]
const
ModPathName = 'modifypath';
ModPathType = 'system';
function ModPathDir(): TArrayOfString;
begin
setArrayLength(Result, 1)
Result[0] := ExpandConstant('{app}');
end;
#include "modpath.iss"
実験してお楽しみください!
winrun4jは非常に使いやすいですが、私の唯一の問題は、組み込み JVM を使用して配布しない限り、64 ビットと 32 ビットの両方のダウンロードを提供する必要があることです。
アプリなら。には GUI があり、Web サイトから配布できますが、Java Web Startが最適なソリューションを提供します。JWS は、Java をサポートするすべてのプラットフォームで機能し、Oracle によってサポートされています。
(.Net は「Windows のみ」のソリューションでうまく機能すると聞いています。)