Motivation
Ich habe eine proprietäre Java-Anwendung, die unter Snow Leopard funktioniert hat, unter Lion jedoch mit folgendem Backtrace fehlschlägt:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Invalid display mode
at apple.awt.CGraphicsDevice.setDisplayMode(CGraphicsDevice.java:472)
at apple.awt.CGraphicsDevice.setFullScreenWindowSynchronized(CGraphicsDevice.java:363)
at apple.awt.CGraphicsDevice.access$000(CGraphicsDevice.java:25)
at apple.awt.CGraphicsDevice$1SetFullScreenAction.run(CGraphicsDevice.java:326)
at apple.awt.CGraphicsDevice.setFullScreenWindow(CGraphicsDevice.java:331)
Der Aufruf von wird setFullScreenWindow
nur übergeben null
, dh es wird versucht, vom Vollbildmodus in den Fenstermodus zurückzukehren. Der Fehler tritt nur auf, wenn ein Beamer angeschlossen ist und somit die Bildschirmauflösung auf 1024x768 eingestellt ist. Sieht für mich nach einem Fehler in der Java-VM aus.
Mit Blick auf den Code , so scheint es mir , dass OpenJDK 7 könnte dieses Problem angesprochen haben. Also möchte ich es versuchen.
Fehlgeschlagener Ansatz
Allerdings kann ich Java SE 7u7 auch nach dem Herunterladen von Oracle nicht zum Ausführen der Anwendung verwenden, da die Anwendung einen nativen 32-Bit-Code verwendet, den diese JVM nicht unterstützt:
> /Library/Java/JavaVirtualMachines/jdk1.7.0_07.j/Contents/Home/bin/java -d32 -version
Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.
Kernfrage
Meine Kernfrage lautet also: Ist es möglich, einen 32-Bit- Build einer aktuellen Version von OpenJDK 7 unter Mac OS X Lion zu installieren ? Am liebsten als vorkompiliertes Paket, aber wenn das nicht verfügbar ist, dann würde eine gut geschriebene Anleitung, wie ich das kompiliere, auch meinem Zweck dienen.
Antworten:
Es scheint, als hätte ich eine Quelle für vorkompiliertes OpenJDK gefunden:
http://code.google.com/p/openjdk-osx-build/
Die OpenJDK 7-Builds sind universell und werden in der Tat im 32-Bit-Modus ausgeführt. Die neueste Version ist 7u6, die nicht ganz so aktuell ist wie die von Oracle erhältliche 7u7, aber für meine Anforderungen aktuell genug sein sollte.
Leider bleibt mein ursprüngliches Problem bestehen, sodass ich meine JVM möglicherweise selbst kompilieren muss. Ich fand heraus, dass es ein jdk7u-osx-Repository in den OpenJDK-Mercurial-Repositorys gibt , und die README-Builds-Datei enthält sinnvolle Anweisungen zum Erstellen von Inhalten. Der Teil über Quellentropfen scheint besonders wichtig zu sein. Ich habe immer noch einige Probleme, aber diese scheinen Fehler im Erstellungsprozess oder ähnliches zu sein, also werde ich sie mit der macosx-port-dev-Mailingliste aufgreifen .
quelle