Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

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.
    6 Update 3 Developer Package" or later from http://connect.apple.com (Java section)
    • 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

Setup

...

1. Get the code

Code Block

cd /tmp
hg clone http://bitbucket.org/pmezard/hgforest-crew/
cp hgforest-crew/forest.py ~/.forest.py

Add the following lines to your: ~/.hgrc

Code Block

[extensions]
hgext.forest=~/.forest.py

Source

Code Block

hg fclone http://hg.openjdk.java.net/macosx-port/macosx-port

Build

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

2. Build

Code Block
titleJava 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`
Code Block
titleUsing Apple's Java 6
CPATH="/usr/X11/include" LANG=C make
Code Block

CC=/Developer/usr/bin/llvm-gcc-4.2 CXX=/Developer/usr/bin/llvm-g++-4.2 ALLOW_DOWNLOADS=true SA_APPLE_BOOT_JAVA=true ALWAYS_PASS_TEST_GAMMA=true ALT_BOOTDIR=`/usr/libexec/java_home -v 1.6` make
HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`

* Steps for incremental building

3. Smoke Test

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

4. Install

Code Block
mkdir -p ~/Library/Java/JavaVirtualMachines
cp -R build/macosx-universal/j2sdk-bundle/1jdk1.78.0.jdk ~/Library/Java/JavaVirtualMachines
Panel
The "1.7.0.jdk" bundle can be copied or symlinked to
jdk ~/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).


5. Run

Code Block

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

Test

The linux jtreg is just a shell script that runs fine on Mac OS X. It will run all the tests under $SRC/jdk/.

Code Block

cd $SRC/jdk/
(path to jtreg)/linux/bin/jtreg .

Caveats

If you have the Java Developer Package installed:

Code Block
$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!

 If your version of Xcode is older than 3.2.5, the 32-bit build won't run, but the 64-bit build will.