2013-02-24 10 views
6

Per far sì che le app Java somiglino alle app native quando vengono eseguite su Mac OS X, Apple ha creato lo Apple Java Extensions per rendere le app Java più simili a Mac OS X. Ciò consente di gestire il comportamento di "Informazioni" menu e supporto trascinare e rilasciare l'icona dell'applicazione.Java 7 può usare Apple Java Extensions?

Tuttavia, non riesco a trovare nulla che indica se queste estensioni sono incluse in Java 7 o anche utilizzabili con Java 7. Sono a conoscenza del fatto che Apple ha fuso l'implementazione di OS X in OpenJDK, ma non sono sicuro se queste estensioni sono andate con esso. Vedo che l'obiettivo per lo Mac OS X port of OpenJDK è di "Includere un toolkit UI completo, nativo basato su Cocoa", ma non riesco a trovare molto su ciò che questo comporta. La ricerca nel web non si è rivelata molto proficua e non ho idea se siano compatibili con Java 7 o siano addirittura inclusi.

Quindi penso Ho tre domande:

  • Sarà un Mac con Java 7 in grado di utilizzare le estensioni di Apple Java?
  • Sono inclusi in Java 7 e, in caso contrario, posso scaricarli in bundle nella mia app?
  • Esistono alternative a queste estensioni compatibili con Java 7?

risposta

6

Un Mac con Java 7 sarà in grado di utilizzare le estensioni Java di Apple?

Sì. Sono inclusi sia nella distribuzione Oracle che in OpenJDK. Vedi la seconda risposta qui sotto.

Non riesco a garantire per l'API completa in quanto ho solo bisogno di un sottoinsieme per supportare il comportamento di trascinamento nell'icona dell'app e nella cornice dell'app. Posso confermare che questo funziona come previsto con OpenJDK 7. Nessun problema sul lato distribuzione, in quanto l'app è in vendita sul Mac App Store.

Sono inclusi in Java 7 e, in caso contrario, posso scaricarli in bundle nella mia app?

Essi sono inclusi nel OpenJDK 7, è possibile trovare le fonti in /src/MacOSX/classes/com/mela e supportati da Oracle come suggerito dai messaggi e correzioni di bug leggibili sul macosx-port-dev mailing list.

Sono anche inclusi nella distribuzione di Oracle, unjar rt.jar per vederli.

Non c'è bisogno di scaricare nulla, basta iniziare a utilizzarle nel vostro editor:

IntelliJ completion

Esistono alternative a queste estensioni che sono Java 7 compatibile?

Non che io sappia, ma dubito che tu abbia bisogno di un'alternativa.

+0

Grazie per la risposta! Sono lieto di sapere che funziona e apprezzo che tu abbia condiviso le tue esperienze con l'utilizzo! – Thunderforge

+0

Questo non è il caso nella distribuzione JDK corrente di Java8 su Windows. – koppor

+0

Per me java non trova com.apple.eawt.C'è una sorta di interruttore per abilitarlo? Se copio rt.jar in un'altra posizione e lo includo, allora funziona. – Jochen