the modular java platform & project jigsawjava.io java.lang java.lang.annotation...

72
Insert Presenter’s Name Here Insert Presenter’s Title Here Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 The Modular Java Platform & Project Jigsaw Mark Reinhold (@mreinhold) Chief Architect, Java Platform Group Oracle 2014/2/4

Upload: others

Post on 22-May-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Insert Presenter’s Name HereInsert Presenter’s Title Here

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

The Modular Java Platform & Project Jigsaw

Mark Reinhold (@mreinhold)Chief Architect, Java Platform GroupOracle

2014/2/4

Page 2: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.2

ScalabilityPerformance

Security

Page 3: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.3

Page 4: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.3

Page 5: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

Page 6: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

Page 7: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

54MB

Page 8: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

54MB

compact1

Page 9: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

1154MB

compact1

Page 10: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

1154MB

compact1

compact2

Page 11: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

jdbc jaxp

1154MB

compact1

rmicompact2

Page 12: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

jdbc jaxp

1154MB 16

compact1

rmicompact2

Page 13: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

jdbc jaxp

1154MB 16

compact3

compact1

rmicompact2

Page 14: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

authjdbc jaxpnaming

rowsetcompiler

xmldsig

prefsinstrument

1154MB 16

compact3

compact1

rmicompact2

Page 15: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

authjdbc jaxpnaming

rowsetcompiler

xmldsig

prefsinstrument

1154MB 1630

compact3

compact1

rmicompact2

Page 16: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

authjdbc jaxpnaming

rowsetcompiler

xmldsig

prefsinstrument

1154MB 1630

JRE

compact3

compact1

rmicompact2

Page 17: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

authjdbc jaxpnaming

rowsetcompiler

xmldsig

prefssctpinstrument

crypto

corba

desktop

jaxws

httpserver

1154MB 1630 nashorn

javafx

JRE

compact3

compact1

rmicompact2

Page 18: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

authjdbc jaxpnaming

rowsetcompiler

xmldsig

prefssctpinstrument

crypto

corba

desktop

jaxws

httpserver

1154MB 1630 nashorn

javafx

rmi

Page 19: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

tlslogging

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

1154MB 1630 nashorn

javafx

rmi

Page 20: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

tlslogging

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

1154MB 1630 nashorn

javafx

rmi

Page 21: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

tlslogging

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

nashorn

javafx

rmi

Page 22: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

tlslogging

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

nashorn

javafx

rmi

Page 23: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

tlslogging

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

nashorn

rmi

javafx

Page 24: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

tlslogging

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

nashorn

javafx

rmi

Page 25: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

tlslogging

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

javafx

nashorn

rmi

Page 26: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

loggingauth

jdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

javafxtls

nashorn

rmi

Page 27: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

javafxtls

nashorn

rmi

logging

Page 28: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

javafxtls

nashorn

rmi

logging

script

Page 29: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4

base

javafxtls

nashorn

rmi

logging

script

Page 30: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5

Page 31: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5

*.jmod

Page 32: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5

*.jmod$JRE/bin/java /lib/...

Page 33: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5

jlink*.jmod$JRE/bin/java /lib/...

Page 34: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.6

Page 35: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.6

$ jlink -mods javafx,rmi,nashorn -d $JRE

Page 36: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.6

$ jlink -mods javafx,rmi,nashorn -d $JRE$ $JRE/bin/java -jar app.jar:... ...

Page 37: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.6

$ jlink -mods javafx,rmi,nashorn -d $JRE$ $JRE/bin/java -jar app.jar:... ...

$ javac -mods javafx,rmi,nashorn -d classes *.java

Page 38: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.6

$ jlink -mods javafx,rmi,nashorn -d $JRE$ $JRE/bin/java -jar app.jar:... ...

$ javac -mods javafx,rmi,nashorn -d classes *.java

$ java -mods javafx,rmi,nashorn -jar app.jar:... ...

Page 39: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.7

Page 40: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8

Page 41: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8

Fast class lookup

Page 42: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8

Fast class lookupAggressive inlining

Page 43: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8

Fast class lookupAggressive inlining

Ahead-of-time compilation

Page 44: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8

Fast class lookupAggressive inlining

JVM-specific memory imagesAhead-of-time compilation

Page 45: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8

Fast class lookupAggressive inlining

JVM-specific memory imagesAhead-of-time compilation

Removal of unused fields/methods/classes

Page 46: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9

jlink*.jmod$JRE/bin/java /lib/...

Page 47: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9

jlink*.jmod$JRE/bin/java /lib/...

*.jar

*.class

Page 48: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9

jlink*.jmod$JRE/bin/java /lib/...

*.jar

*.class

JVM image

Page 49: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9

jlink*.jmod$JRE/bin/java /lib/...

*.jar

*.class

JVM image

Fat binary

Page 50: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9

jlink*.jmod$JRE/bin/java /lib/...

*.jar

*.class

JVM image

.jar

Fat binary

Page 51: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9

jlink*.jmod$JRE/bin/java /lib/...

*.jar

*.class

JVM image

.jar

.jmod

Fat binary

Page 52: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10

Page 53: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10

$ jlink -mods javafx,rmi,nashorn -cp app.jar -d $JRE

Page 54: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10

$ jlink -mods javafx,rmi,nashorn -cp app.jar -d $JRE$ $JRE/bin/app ...

Page 55: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10

$ jlink -mods javafx,rmi,nashorn -cp app.jar -d $JRE

$ jlink -mods javafx,rmi,nashorn -cp app.jar -o app.jai

$ $JRE/bin/app ...

Page 56: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10

$ jlink -mods javafx,rmi,nashorn -cp app.jar -d $JRE

$ jlink -mods javafx,rmi,nashorn -cp app.jar -o app.jai$ java -jai app.jai

$ $JRE/bin/app ...

Page 57: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.11 http://www.flickr.com/photos/pasukaru76/5268559005/

Page 58: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.11 http://www.flickr.com/photos/pasukaru76/5268559005/

Page 59: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12

rt.jartools.jar

Page 60: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12

rt.jartools.jar

Page 61: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12

$JRE/bin/ /conf/ /ext/ /include/ /lib/$ARCH/*.so /$VM/*.so /modules/

rt.jartools.jar

Page 62: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.13

Page 63: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

java.iojava.langjava.lang.annotationjava.lang.invokejava.lang.refjava.lang.reflectjava.mathjava.netjava.niojava.nio.channelsjava.nio.channels.spijava.nio.charsetjava.nio.charset.spijava.nio.filejava.nio.file.attributejava.nio.file.spijava.securityjava.security.certjava.security.interfacesjava.security.specjava.textjava.text.spijava.timejava.time.chronojava.time.formatjava.time.temporaljava.time.zonejava.utiljava.util.concurrentjava.util.concurrent.atomicjava.util.concurrent.locksjava.util.function

java.util.jarjava.util.regexjava.util.spijava.util.streamjava.util.zipjavax.cryptojavax.crypto.interfacesjavax.crypto.specjavax.security.authjavax.security.auth.callbackjavax.security.auth.loginjavax.security.auth.spijavax.security.auth.x500jdkjdk.internal.org.objectweb.asmjdk.internal.org.xml.saxjdk.internal.util.xmljdk.internal.util.xml.impljdk.jigsaw.modulejdk.jigsaw.tools.jlinkjdk.joptsimplejdk.joptsimple.internaljdk.joptsimple.utilsun.invokesun.invoke.anonsun.invoke.emptysun.invoke.utilsun.launchersun.launcher.resourcessun.miscsun.misc.resourcessun.net

sun.net.ftpsun.net.ftp.implsun.net.idnsun.net.sdpsun.net.smtpsun.net.spisun.net.spi.nameservicesun.net.utilsun.net.wwwsun.net.www.content.textsun.net.www.httpsun.net.www.protocol.filesun.net.www.protocol.ftpsun.net.www.protocol.httpsun.net.www.protocol.jarsun.net.www.protocol.mailtosun.net.www.protocol.netdocsun.niosun.nio.chsun.nio.cssun.nio.fssun.reflectsun.reflect.annotationsun.reflect.generics.factorysun.reflect.generics.parsersun.reflect.generics.scopesun.reflect.generics.treesun.reflect.generics.visitorsun.reflect.miscsun.security.actionsun.security.jcasun.security.pkcs

sun.security.pkcs12sun.security.providersun.security.provider.certpathsun.security.rsasun.security.timestampsun.security.utilsun.security.validatorsun.security.x509sun.textsun.text.bidisun.text.normalizersun.text.resourcessun.text.resources.cldrsun.text.resources.cldr.ensun.text.resources.ensun.utilsun.util.calendarsun.util.cldrsun.util.localesun.util.locale.providersun.util.loggingsun.util.logging.resourcessun.util.resourcessun.util.resources.cldrsun.util.resources.cldr.ensun.util.resources.ensun.util.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.14

Page 64: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

java.iojava.langjava.lang.annotationjava.lang.invokejava.lang.refjava.lang.reflectjava.mathjava.netjava.niojava.nio.channelsjava.nio.channels.spijava.nio.charsetjava.nio.charset.spijava.nio.filejava.nio.file.attributejava.nio.file.spijava.securityjava.security.certjava.security.interfacesjava.security.specjava.textjava.text.spijava.timejava.time.chronojava.time.formatjava.time.temporaljava.time.zonejava.utiljava.util.concurrentjava.util.concurrent.atomicjava.util.concurrent.locksjava.util.function

java.util.jarjava.util.regexjava.util.spijava.util.streamjava.util.zipjavax.cryptojavax.crypto.interfacesjavax.crypto.specjavax.security.authjavax.security.auth.callbackjavax.security.auth.loginjavax.security.auth.spijavax.security.auth.x500jdkjdk.internal.org.objectweb.asmjdk.internal.org.xml.saxjdk.internal.util.xmljdk.internal.util.xml.impljdk.jigsaw.modulejdk.jigsaw.tools.jlinkjdk.joptsimplejdk.joptsimple.internaljdk.joptsimple.utilsun.invokesun.invoke.anonsun.invoke.emptysun.invoke.utilsun.launchersun.launcher.resourcessun.miscsun.misc.resourcessun.net

sun.net.ftpsun.net.ftp.implsun.net.idnsun.net.sdpsun.net.smtpsun.net.spisun.net.spi.nameservicesun.net.utilsun.net.wwwsun.net.www.content.textsun.net.www.httpsun.net.www.protocol.filesun.net.www.protocol.ftpsun.net.www.protocol.httpsun.net.www.protocol.jarsun.net.www.protocol.mailtosun.net.www.protocol.netdocsun.niosun.nio.chsun.nio.cssun.nio.fssun.reflectsun.reflect.annotationsun.reflect.generics.factorysun.reflect.generics.parsersun.reflect.generics.scopesun.reflect.generics.treesun.reflect.generics.visitorsun.reflect.miscsun.security.actionsun.security.jcasun.security.pkcs

sun.security.pkcs12sun.security.providersun.security.provider.certpathsun.security.rsasun.security.timestampsun.security.utilsun.security.validatorsun.security.x509sun.textsun.text.bidisun.text.normalizersun.text.resourcessun.text.resources.cldrsun.text.resources.cldr.ensun.text.resources.ensun.utilsun.util.calendarsun.util.cldrsun.util.localesun.util.locale.providersun.util.loggingsun.util.logging.resourcessun.util.resourcessun.util.resources.cldrsun.util.resources.cldr.ensun.util.resources.ensun.util.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.14

java.lang.SecurityManager::checkPackageAccess

Page 65: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.15

base

tlslogging

authjdbc

jta

jaxpnaming

rowset

kerberosmanagement

compiler

xmldsig

prefssctpinstrument

script

crypto

management.iiopcosnaming

corba

desktop

tools.jre

jaxws

jx.annotations

httpserver

tools

tools.jaxws tools.base

devtools

nashorn

javafx

rmi

Page 66: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.16 http://www.flickr.com/photos/pasukaru76/5268559005/

Page 67: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.17

sun.**.internal.*

Page 68: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.17

sun.**.internal.*

Page 69: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.18

ScalabilityPerformance

Security

Page 70: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.19

Page 71: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.19

The preceding material is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 72: The Modular Java Platform & Project Jigsawjava.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi

Insert Presenter’s Name HereInsert Presenter’s Title Here

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

The Modular Java Platform & Project Jigsaw

Mark Reinhold (@mreinhold)Chief Architect, Java Platform GroupOracle

2014/2/4