Perché QuickTime QTSession.open ha esito negativo se impacchettato usando OSX Jar Bundler?

StackOverflow https://stackoverflow.com/questions/1814691

  •  06-07-2019
  •  | 
  •  

Domanda

Sto usando QuickTime per Java per visualizzare video all'interno di un'applicazione desktop Java. Tutto funziona bene quando questa applicazione è costruita come file jar, ma per qualche ragione quando uso questo maven plugin per creare il pacchetto dell'applicazione in modo che appaia come un pacchetto di applicazioni OSX nativo, il seguente codice:

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

genera il seguente errore:

  

java.lang.UnsatisfiedLinkError: /System/Library/Java/Extensions/libQTJNative.jnilib: nessuna immagine adatta trovata. Trovato: /System/Library/Java/Extensions/libQTJNative.jnilib: nessuna architettura corrispondente nel wrapper universale

È stato utile?

Soluzione

QuickTime per Java funziona solo in modalità 32 bit. Pur avendo J2SE 5.0 (32 bit) impostato come JVM per applicazioni java, sembrerebbe che i bundle di applicazioni creati da osxappbundle-maven-plugin viene eseguito per impostazione predefinita su una versione a 64 bit di JVM. Impostazione di osxappbundle-maven-plugin per utilizzare un Info.plist personalizzato che contiene la seguente chiave:

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

Forza l'esecuzione del bundle dell'applicazione in modalità 32 bit e risolve il problema.

Mille grazie all'aceto per avermi indicato nella giusta direzione.

Altri suggerimenti

Ho anche trovato ... la tua applicazione Java con java -d32 ...

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top