Mac OS Xでは、Jarをダブルクリックすると自動的に開きます。ただし、これをテストする良い方法はありません。私は開発者なので、私のコンピューターは多くのことを特異的に行います:-)特に、Apple独自のJavaランタイムは10.6で非推奨になり、他のJavaランタイムにどのツールが付属しているかわかりません。それでも、このアプローチが機能する場合(私が思うように)、それが最善の策です。
それがうまくいかない場合、次善の策はadayzdoneが提案したようにAppleScriptを使用することです。代わりに、私が使用するAppleScriptは次のようになります。
do shell script (¬
"cd " & quoted form of POSIX path of (path to me) & "/.. ; " & ¬
"java -jar ExecutableProgram.jar")
このquoted form of ...ビットは、スクリプトへのパス( )を取得し、path to meそれをUnixパス()に変換しPOSIX path of ...、シェルの特殊文字を引用します(quoted form of ...); /..スクリプトはディレクトリ内で実行されているため、Jarが存在する親ディレクトリにアクセスする必要もあります。これをダブルクリック可能にするには、テキストをコピーしてAppleScriptエディタに貼り付け、[保存...]ダイアログで[ファイル形式]を[アプリケーション]に設定します。(編集するには、AppleScript Editor内からアプリケーションを開きます。)このアプローチの欠点は、真のJavaアプリケーションとMacシェルの2つのアプリケーションを実行できることです。これを回避する方法は2つあります。
- コマンドのコマンドライン出力が重要でない場合は、AppleScriptの3行目の文字列を
"java -jar ExecutableProgram.jar &>- &":に変更&>-して、出力ストリームを閉じ、&バックグラウンドで実行します。(&動作しません。)
- より複雑なアプローチはAppleScriptを終了するのではなく、単にそれを隠すだけです。
- Controlキーを押しながらAppleScriptアプリケーションをクリックし、[パッケージの内容を表示]を選択します
Contents/フォルダに移動して開きますInfo.plist
LSUIElement値を持つキーを追加しますtrue:
- プレーンテキストのXML形式(バイナリ形式ではない)の場合は、追加できます
<key>LSUIElement</key><true/>
- コマンドラインから、これは次のようになります(たとえば、を使用して取得した、で
defaults write /full/path/to/Info LSUIElement -bool true始まるフルパスが必要ですが、拡張子を指定することはできません)。/"$(pwd)/Info".plist
- Appleの「PropertyListEditor」アプリケーションを使用することもできます。これは(少なくとも以前は)開発者ツールに付属しています。無料のサードパーティのプロパティリストエディタも存在します。
それがうまくいかない場合、この種のことへの絶対的な最も簡単なアプローチは、Windowsバッチスクリプトの代わりにUnixシェルスクリプトを書くことです。.command拡張子を付けて保存し、実行可能ビットを設定する必要があります( chmod +x file.command)。内容は
#!/bin/sh
cd "$(dirname "$0")"
java -jar ExecutableProgram.jar
(Unixシェルスクリプトに慣れていない場合:最初の行はこれがシェルスクリプトであることを宣言します。2行目はシェルスクリプトが存在するディレクトリに入り、3行目は関連するアクションを実行します。)このアプローチの理由は次のとおりです。あまり望ましくないのは、ターミナル(OS Xのコマンドラインインターフェイス)を開くことです。スクリプトが終了するまで開いたままになるウィンドウが表示されます。スクリプトが終了すると、そのウィンドウは閉じません(または閉じない場合があります)。ターミナルはそれ自体で終了しません。したがって、それはより明らかに二級市民です。