0

私は Java でプログラムを作成し、顧客が Windows または Mac マシンで開く必要がある実行可能な jar を持っています。私のクライアントの何人かは... コンピューターの専門家ではありません。

したがって、Mac と Windows の両方でダブルクリックして実行可能 jar を自動的に開始するには、2 つのスクリプトを作成する必要があります (Mac と Windows の両方で 1 つのスクリプトを使用する方法を知っている人がいれば、それはすばらしいことです)。Java が正しくインストールされていれば、スクリプトは問題なく動作するはずです。Java がインストールされていない場合は、よく知っているはずです。

これは、Windows マシン用の私のバッチ スクリプトです。

start javaw -jar ExecutableProgram.jar

ただし、Mac マシン用にどのようなスクリプトを作成すればよいかわかりません。どのタイプのスクリプトを使用すればよいですか?

アップルスクリプト?SH? ダブルクリックで実行できる必要があります。

4

2 に答える 2

2

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のコマンドラインインターフェイス)を開くことです。スクリプトが終了するまで開いたままになるウィンドウが表示されます。スクリプトが終了すると、そのウィンドウは閉じません(または閉じない場合があります)。ターミナルはそれ自体で終了しません。したがって、それはより明らかに二級市民です。

于 2012-06-26T09:45:31.523 に答える
0

java コマンドについてはよくわかりませんが、この AppleScript をアプリケーションとして保存して、ダブルクリックで実行することができます。

set theFolder to quoted form of "/Users/CODe/Desktop/yourFolder"
    do shell script "cd " & theFolder & " ; java -jar ProfessionalMediator.jar"

アプリケーションとして保存された AppleScript を使用して、ターミナルでこれを実行することもできます。

tell application "Finder" to set theFolder to POSIX path of (file (path to me)'s container as alias)
tell application "Terminal"
    activate
    do script "cd " & theFolder & " ; java -jar ProfessionalMediator.jar" in window 1
end tell
于 2012-06-26T02:26:46.923 に答える