Goals

  • Pass all appropriate certification tests for Java SE 7
  • Include a complete, native Cocoa-based UI Toolkit
    • DONE.
  • Provide excellent performance
  • Integrate into main-line OpenJDK 8 
    • DONE. OS X is now 'just another platform' in OpenJDK 8

Minimum requirements to run

Note that only Mac OS X 10.7.3 and higher will be an Oracle-supported platform. It should continue to run on 10.6.8+ but that is not guaranteed. As of 1-Jan-2012 there are no plans to introduce 10.7-only APIs into the codebase.

Prerequisites to build

  • X11
    • On OS X 10.8 Mountain Lion: XQuartz
    • On OS X 10.7 Lion: Run /Applications/Utilities/X11.app to install as an additional download

JTReg is not required to build but useful for running regression tests

1. Get the code

hg clone http://hg.openjdk.java.net/jdk8/jdk8
cd jdk8
chmod 755 get_source.sh
./get_source.sh

2. Build

Java 7 or higher installed
CPATH="/usr/X11/include" LANG=C make ALLOW_DOWNLOADS=true ALT_BOOTDIR=`/usr/libexec/java_home -v 1.7+` HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`
Using Apple's Java 6
CPATH="/usr/X11/include" LANG=C 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`

* Steps for incremental building

3. Smoke Test

build/macosx-universal/j2sdk-image/bin/java -version

4. Install

mkdir -p ~/Library/Java/JavaVirtualMachines
cp -R build/macosx-universal/j2sdk-bundle/jdk1.8.0.jdk ~/Library/Java/JavaVirtualMachines

5. Run

export JAVA_HOME=`/usr/libexec/java_home --version 1.7+`
$JAVA_HOME/bin/java -version

If you have the Java Developer Package installed:

$JAVA_HOME/bin/java -jar /Library/Java/Demos/JFC/SwingSet2/SwingSet2.jar

6. Test

Download jtreg to run the tests in the /jdk/test directory.

Bugs!

File new bugs at http://bugreport.sun.com/bugreport/. Please check out the bug reporting guidelines if you haven't filed against the project before.

Questions?

Please join the macosx-port-dev mailing list and ask!

See something wrong on this page? Fix it!

 

  • No labels

3 Comments

  1. The "Get the Code" sections lists the commands for fetching the source. I can build when I use this command. But when I try to update the source, by doing a pull instead of a clone, the resulting source will not build. Can someone add the correct commands for updating the source? Fetching and building the entire corpus every time seems unnecessary.

    1. It turns out that the answer is too simple to have been documented. Just execute the get_source.sh script again. There is no step 3, or even a step 2...