мотивация
У меня есть проприетарное Java-приложение, которое раньше работало в Snow Leopard, но не работало в Lion со следующей обратной трассировкой:
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)
Вызов setFullScreenWindow
только проходит null
, т.е. он пытается восстановить из полноэкранного в оконный режим. Ошибка возникает, только когда подключен проектор, и поэтому разрешение экрана настроено на 1024x768. Похоже, ошибка в Java VM для меня.
Глядя на код , мне кажется, что OpenJDK 7 мог решить эту проблему. Поэтому я хочу попробовать.
Неудачный подход
Однако даже после загрузки Java SE 7u7 из Oracle я не могу использовать его для запуска приложения, так как приложение использует некоторый 32-битный собственный код, который не поддерживается этой JVM:
> /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.
Основной вопрос
Итак, мой основной вопрос заключается в следующем: возможно ли установить 32-разрядную сборку последней версии OpenJDK 7 на Mac OS X Lion? Желательно, как предварительно скомпилированный пакет, но если он недоступен, то хорошо написанная инструкция, как его скомпилировать, также послужит моей цели.
Ответы:
Кажется, я нашел источник предварительно скомпилированного OpenJDK:
http://code.google.com/p/openjdk-osx-build/
Сборки OpenJDK 7 там универсальны и действительно работают в 32-битном режиме. Последняя версия - 7u6, которая не так нова, как 7u7, доступная от Oracle, но должна быть достаточно новой для моих требований.
Увы, моя первоначальная проблема сохраняется, поэтому мне, возможно, придется самостоятельно скомпилировать JVM. Я обнаружил , есть jdk7u-OSX хранилища в OpenJDK ртутных хранилищ , и его README-файл сборка обеспечивает разумные инструкции о том , как строить вещи. Часть о каплях источника кажется особенно важной. У меня все еще есть некоторые проблемы, но они кажутся ошибками в процессе сборки или аналогичными, поэтому я расскажу о них в списке рассылки macosx-port-dev .
источник