1

JarBundler はもはや開発されておらず、1.7 (リンク) では動作しません。同じサイトから、jar から適切なファイルを生成するAppBundlerを見つけました。.app

ここで、これらのjarアプリの内容が同じであることがわかったので、その人が提案したとおりに実行し、内部(または古いJar Bundler)のjarファイルのみを置き換えたところContents/JavaContents/Resources/Java機能しました。AppBundler を使い続けることもできますが、Ant 用の追加の依存関係/プラグインは必要ありません。

とにかく、Ant で自動化すると、.app開きません。私はこれに絞り込みました:

  • AppBundler.appから生成された
  • コピーして別の場所に貼り付けると、起動します
  • Antでコピペしたら起動しない

アプリケーションの状態キャッシュをクリアするなどのことも試しましたが、運が悪かったです。繰り返しますが、奇妙なことに、「ソースアプリ」を自分でコピーすると、コピーが起動します。Ant を使用してソース アプリをコピーすると (他に何もしていません)、コピーされません。

これが私のAntスニペットです(.appAFAIKの単なるフォルダーです)(はのdist.macapp名前です.app):

<copy todir="${dist.dir}" >  
    <fileset dir="${resources.dir}">  
        <include name="${dist.macapp}/**" />
    </fileset>
</copy>

私は2つの質問があると思います:

  1. なぜこれが機能しないのですか(私が試したことを十分に提供したと思います:P)
  2. これを行うためのより良い方法はありますか (Java Web Start は問題外です。後で調べます)
4

1 に答える 1

1

Mac の .app ファイルは、標準化されたフォルダ レイアウトにすぎません。いつでも自分でスクリプトにバンドルできます。jar ファイルを単に置き換えるだけでは十分ではありません。

このようなものを作ります

Contents/
    Java/yourjar.jar
    info.plist /* specific to your application! maybe make a template then find and replace strings */
    MacOS/JavaApplicationStub

/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub実行可能ファイルをフォルダーにコピーしMacOSます (これはアプリ固有ではなく、1 回で済みます)。

Java 固有の info.plist の形式がわかりません。

于 2013-08-01T17:18:30.607 に答える