Installieren Sie 32-Bit-Java 7 OpenJDK

Motivation

Ich habe eine proprietäre Java-Anwendung, die früher unter Snow Leopard funktionierte, aber unter Lion mit dem folgenden 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 setFullScreenWindowpassiert nur 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 Bug in der Java VM aus.

Wenn ich mir den Code ansehe , scheint mir, dass OpenJDK 7 dieses Problem behoben haben könnte. Also möchte ich das ausprobieren.

Fehlgeschlagener Ansatz

Aber auch nach dem Herunterladen von Java SE 7u7 von Oracle kann ich es nicht zum Ausführen der Anwendung verwenden, da die Anwendung 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 selbst kompiliere, auch meinen Zweck erfüllen.

Ich habe die gleiche Frage. Was hier eine bessere Antwort war.

Antworten (1)

Anscheinend habe ich eine Quelle für vorkompiliertes OpenJDK gefunden:
http://code.google.com/p/openjdk-osx-build/
Die OpenJDK 7-Builds dort sind universell und laufen tatsächlich im 32-Bit-Modus. 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, also muss ich meine JVM vielleicht doch selbst kompilieren. Ich habe festgestellt, dass es ein jdk7u-osx-Repository in den OpenJDK Mercurial Repositories gibt , und seine README-Builds-Datei enthält vernünftige Anweisungen zum Erstellen von Dingen. Der Teil über Source Drops erscheint besonders wichtig. Ich habe immer noch einige Probleme, aber das scheinen Fehler im Build-Prozess oder ähnliches zu sein, also werde ich sie mit der macosx-port-dev-Mailingliste aufgreifen .