4

Oracle の appbundler ant タスク ( http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html ) を使用すると、JRE7 がバンドルされた動作する Mac アプリを作成できますが、いくつかはロードされます。 Info.plist シームのパスが有効でないため、ネイティブ ライブラリなどのリソースが失敗しました。

たとえば、私が使用する build.xml ant タスクでは (私のネイティブ ライブラリは app-bundle 内の Contents/Java フォルダーにコピーされます):

a) <option value="-Djava.library.path=Contents/Java/" />
b) <option value="-Djava.library.path=$JAVAROOT/" />
c) <option value="-Djava.library.path=$APP_PACKAGE/Contents/Java/" />

すべて UnsatisfiedLinkError になります。また、splash-image のような他のリソースも見つかりません。

<option value="-splash:Contents/Java/my-splash.png" />

ここで JVMOptions のパスを正しく設定する方法はありますか?

編集: Java7 appbundler は、jdk6 に付属する Apple の Jar Bundler と同じ plist の構文を使用しません。たとえば、SplashFile を追加するための「Java」ディクテーションはありません。

4

1 に答える 1

7

appbundlerタスクのドキュメントによると、探している魔法の変数は次の$APP_ROOTとおりです。

<option value="-Djava.library.path=$APP_ROOT/Contents/Java/" />

これは<argument value="..."/>(JVMのオプションではなく、メインクラスの引数)にも機能します。

于 2012-11-29T11:12:47.657 に答える