Motivation
J'ai une application java propriétaire qui fonctionnait sous Snow Leopard mais qui échoue sous Lion avec le backtrace suivant :
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)
L'appel à setFullScreenWindow
seulement des passes null
Il s'agit d'une tentative de restauration du mode plein écran au mode fenêtré. L'erreur ne se produit que lorsqu'un vidéoprojecteur est connecté et que la résolution de l'écran est donc ajustée à 1024x768. Il me semble qu'il s'agit d'un bogue dans la VM Java.
Regarder le code Il me semble qu'OpenJDK 7 a peut-être résolu ce problème. Je veux donc l'essayer.
Échec de l'approche
Cependant, même après avoir téléchargé Java SE 7u7 d'Oracle Je ne peux pas l'utiliser pour exécuter l'application, car celle-ci utilise du code natif 32 bits, que cette JVM ne prend pas en charge :
> /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.
Question centrale
Ma question principale est donc la suivante : est-il possible d'installer une 32 bits construction d'une version récente d'OpenJDK 7 sur Mac OS X Lion ? De préférence sous la forme d'un paquet précompilé, mais si cela n'est pas disponible, une instruction bien écrite sur la façon de le compiler moi-même serait également utile.