Goals
- See main project page: http://openjdk.java.net/projects/macosx-port/
Prerequisites
- Hardware: Any 64-bit capable Intel Mac
- RAM: 4GB, 2GB min
- OS: Mac OS X 10.6, run Software Update to get to at least 10.6.7
- Xcode: 3.2.6 or later from http://developer.apple.com (Mac Dev Center section)
- Java: "Java for Mac OS X 10.6 Update 4" or later from http://connect.apple.com (Java section)
- Mercurial: http://mercurial.berkwood.com/
- Jtreg: http://openjdk.java.net/jtreg/
Xcode 4
If you install Xcode 4, you will have to re-install "Java for Mac OS X Update 4" or a later developer preview to correct headers in the JavaRuntimeSupport framework.
Source
hg clone http://hg.openjdk.java.net/macosx-port/macosx-port cd macosx-port chmod 755 get_source.sh ./get_source.sh
Build
make ALLOW_DOWNLOADS=true SA_APPLE_BOOT_JAVA=true ALWAYS_PASS_TEST_GAMMA=true ALT_BOOTDIR=`/usr/libexec/java_home -v 1.6` HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`
Smoke Test
$ build/macosx-universal/j2sdk-bundle/1.7.0.jdk/Contents/Home/bin/java -version
Install
mkdir -p ~/Library/Java/JavaVirtualMachines cp -R build/macosx-universal/j2sdk-bundle/1.7.0.jdk ~/Library/Java/JavaVirtualMachines
The "1.7.0.jdk" bundle can be copied or symlinked to ~/Library/Java/JavaVirtualMachines or /Library/Java/JavaVirtualMachines.
Once installed, the build will be discovered by /Applications/Utilities/Java Preferences.app, and found using the /usr/libexec/java_home tool, when passing it "--version 1.7".
By dragging the 1.7.0 version to the top of the Java Preferences lists, it will become the default JVM for command line use (since CommandLine is currently the only capability it supports).
Run
export JAVA_HOME=`/usr/libexec/java_home --version 1.7` $JAVA_HOME/bin/java -version
Testing the Cocoa-based AWT
export AWT_TOOLKIT=CToolkit $JAVA_HOME/bin/java -jar /Developer/Extras/Java/JFC/SwingSet2/SwingSet2.jar
Test
Download jtreg to run the tests in the /jdk/test directory.
Bugs
File them at java.net/jira/browse/MACOSX_PORT.
Questions
Please join the macosx-port-dev mailing list and ask away!.