lion – 安装32位Java 7 OpenJDK
作者:互联网
动机
我有一个专有的java应用程序,曾经在Snow Leopard下工作但在Lion下失败,有以下backtrace:
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,即它尝试从全屏恢复到窗口模式.仅在连接投影仪时才会出现错误,因此屏幕分辨率调整为1024×768.看起来像Java VM中的一个错误.
看看the code,在我看来,OpenJDK 7可能已经解决了这个问题.所以我想尝试一下.
方法失败
但是,即使在下载Java SE 7u7 from 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.
核心问题
所以我的核心问题是:是否可以在Mac OS X Lion上安装最新版本的OpenJDK 7的32位版本?最好是作为预编译的包,但如果没有,那么如何编写自己的编写良好的指令也可以满足我的目的.
解决方法:
我似乎找到了预编译OpenJDK的源代码:
http://code.google.com/p/openjdk-osx-build/
OpenJDK 7构建有通用性,确实在32位模式下运行.
最新版本是7u6,这与Oracle提供的7u7不同,但应该是最近的,以满足我的要求.
唉,我原来的问题仍然存在,所以我可能不得不自己编译我的JVM.我发现在OpenJDK mercurial repositories中有一个jdk7u-osx repository,它的README-builds file提供了关于如何构建东西的合理指示.关于源滴的部分显得特别重要.我仍然有一些麻烦,但这些似乎是构建过程中的错误或类似的,所以我会用macosx-port-dev mailing list把它们拿走.
标签:32-bit,java,lion 来源: https://codeday.me/bug/20190818/1689184.html