Java
●●●●●
●●●●●
●●●●●●
2006 2007 2010 Beyond
Sun launches OpenJDK(javac, Hotspot)
Rest of OpenJDK
is released Oracle adopts OpenJDK(Sun is acquired)
Lambdas, Nashorn & Adopt OpenJDK
OpenJDK:Reference implementation of Java 7 SE
Java 10
Java 9
2011 2012 2014
Java 8
World-wide Community involvement
… JDK6 ⇒ OpenJDK7 → JDK7 JDK7 ⇒ OpenJDK8 → JDK8 JDK8 ⇒ OpenJDK9 → JDK9 …
⇒ applied to→ produces
JDK7 ⇒ OpenJDK8 → JDK8* (1) JDK8* ⇒ OpenJDK8 → JDK8 (2)
⇒ applied to→ produces
make $ make [clean] images$ make bootcycle-images$ make [component-name]$ make [module-name]$ make JOBS=<n> # Run <n> parallel make jobs
GenCollectorPolicy* gc_policy;
if (UseSerialGC) { gc_policy = new MarkSweepPolicy(); } else if (UseConcMarkSweepGC) { #ifndef SERIALGC if (UseAdaptiveSizePolicy) { gc_policy = new ASConcurrentMarkSweepPolicy(); } else { gc_policy = new ConcurrentMarkSweepPolicy(); } #else // SERIALGC fatal("UseConcMarkSweepGC not supported in this VM."); #endif // SERIALGC } else { // default old generation gc_policy = new MarkSweepPolicy(); }
Universe::_collectedHeap = new GenCollectedHeap(gc_policy);
$ git clone <repo-name>
$ git pull origin master
$ mvn clean install
$ hg clone http://hg.openjdk.java.net/jdk8/jdk8 jdk8
$ hg clone http://hg.openjdk.java.net/jdk9/jdk9 jdk9
$ ./get_source.sh
$ bash configure --with-boot-jdk=<path to jdk8 image>
$ make clean images
$ make install
●●●●●
●●●●●●●●
Java
… JDK6 ⇒ OpenJDK7 → JDK7 JDK7 ⇒ OpenJDK8 → JDK8 JDK8 ⇒ OpenJDK9 → JDK9 …
⇒ applied to→ produces
make $ make [clean] images$ make bootcycle-images$ make [component-name]$ make [module-name]$ make JOBS=<n> # Run <n> parallel make jobs
$ git clone <repo-name>
$ git pull origin master
$ mvn clean install
$ hg clone http://hg.openjdk.java.net/jdk8/jdk8 jdk8
$ hg clone http://hg.openjdk.java.net/jdk9/jdk9 jdk9
$ ./get_source.sh
$ bash configure --with-boot-jdk=<path to jdk8 image>
$ make clean images