1

QuickTime for Java を使用して、Java デスクトップ アプリケーション内でビデオを表示しています。このアプリケーションが jar ファイルとしてビルドされている場合はすべて正常に動作しますが、何らかの理由でこの maven プラグインを使用してアプリケーションをパッケージ化し、ネイティブ OSX アプリケーション バンドルのように見せると、次のコードが表示されます。

try {
  QTSession.open();
} catch (Throwable t) {
  logger.error("QTSession was unable to open", e);
}

次のエラーがスローされます。

java.lang.UnsatisfiedLinkError: /System/Library/Java/Extensions/libQTJNative.jnilib: 適切なイメージが見つかりません。見つかりました: /System/Library/Java/Extensions/libQTJNative.jnilib: ユニバーサル ラッパーに一致するアーキテクチャがありません

4

2 に答える 2

3

QuickTime for Java は 32 ビット モードでのみ動作します。J2SE 5.0 (32 ビット) が Java アプリケーションの JVM として設定されているにもかかわらず、osxappbundle-maven-pluginによって作成されたアプリケーション バンドルは、デフォルトで 64 ビット バージョンの JVM で実行されるように見えます。次のキーを含むカスタム Info.plist を使用するように osxappbundle-maven-plugin を設定します。

<key>LSArchitecturePriority</key>
<array>
<string>i386</string>
<string>ppc</string>
</array>

アプリケーション バンドルを強制的に 32 ビット モードで実行し、問題を解決します。

私を正しい方向に向けてくれたVinegarに感謝します。

于 2009-11-29T06:38:11.183 に答える
2

私も見つけました... Java -d32を使用したJavaアプリケーション...

(参照: http://macintoshnotes.wordpress.com/2009/12/07/quicktime-for-java-under-snow-leopard/ )

于 2011-10-27T20:59:41.150 に答える