exewrap バージョン 1.0.1 をリリースしました。exewrap は Java アプリケーション (実行可能 JAR ファイル) を Windows の実行ファイル EXE 形式に変換するツールです。ウィンドウ ・ アプリケーションだけでなく、 コンソール ・ アプリケーション、 Windows サービスにも対応しています。
バージョン 1.0.1 では Windows サービスの機能が強化され、 ユーザー アカウント制御 (UAC) に対応しました。
ダウンロード
exewrap は以下のサイトからダウンロードすることができます。
従来のexewrapで作成したWindowsサービスの場合
まずは従来の exewrap バージョン 1.0.0 で作成した Windows サービスのインストール動作を確認してみます。動作確認のために Java で myservice.jar
というプログラムを作成しました。これを EXE に変換してサービスとして登録します。
myservice.jar
を EXE に変換するために以下のコマンドを実行します。
exewrap -s -j myservice.jar -o myservice.exe
これで、 myservice.exe
が生成されます。
コマンドプロンプトを管理者権限で起動する
コマンドプロンプトを管理者権限で起動します。以下のコマンドで作成したサービスをインストールします。
管理者: コマンドプロンプトC:¥>myservice.exe -install
管理者としてコマンドプロンプトを起動した場合、 サービスのインストールは問題なく成功します。
コマンドプロンプトを一般ユーザー権限で起動する
次に管理者としてではなく通常の方法でコマンドプロンプトを起動します。以下のコマンドでサービスのインストールを試みます。
コマンドプロンプトC:¥>myservice.exe -install
管理者としてコマンドプロンプトを起動していない場合、 アクセス拒否でサービスのインストールに失敗します。これは、 バージョン 1.0.0 以前の exewrap で作成した myservice.exe
がユーザー アカウント制御 (UAC) に対応していないことが原因です。
新しいexewrapで作成したWindowsサービスの場合
次にバージョン 1.0.1 の exewrap の動作を確認します。管理者としてコマンドプロンプトを起動した場合の動作は従来と同じですので省略します。
コマンドプロンプトを一般ユーザー権限で起動する
管理者権限なしでコマンドプロンプトを起動します。以下のコマンドでサービスのインストールを試みます。
コマンドプロンプトC:¥>myservice.exe -install
ユーザー アカウント制御 (UAC) の確認ダイアログが表示されます。
はい を押すと、 サービスのインストールが成功します。
ちなみに、 はい ではなく いいえ を押した場合は 「アクセスが拒否されました。」 ではなく 「この操作はユーザーによって取り消されました。」 というメッセージが表示されます。