@@ -31,31 +31,31 @@ export PATH=$JAVA_HOME/bin:$PATH
3131
3232Rem. : le script doit subir quelques améliorations, par exemple pour la copie de jboss-module.jar
3333
34- Démo 1 : classpath & bootclasspath
34+ Démo 1 : classpath
3535-----------
3636
3737# Build with maven
3838export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
3939../classpath-demo/scripts/prepare-classpath.sh
4040
4141# Ça ne marche pas
42- java fr.sewatech.classpath.Count 40 45
42+ java fr.sewatech.classpath.example. Count 40 45
4343
4444# Ça marche
45- java -cp lib/message-launcher.jar fr.sewatech.classpath.Count 40 45
45+ java -cp lib/misc-example.jar fr.sewatech.classpath.example.Count 40 45
46+
47+ Démo 2 : bootclasspath
48+ -----------
4649
4750# Court-circuiter le Integer par défaut
48- java -Xbootclasspath/p:lib/message-launcher .jar fr.sewatech.classpath.Count 40 45
51+ java -Xbootclasspath/p:lib/misc-example .jar fr.sewatech.classpath.example .Count 40 45
4952
5053# En théorie, le endorsed ne devrait pas avoir d'effet sur Integer. En réalité,...
51- java -Djava.endorsed.dirs=lib fr.sewatech.classpath.Count 40 45
54+ java -Djava.endorsed.dirs=lib fr.sewatech.classpath.example. Count 40 45
5255
53- Démo 2 : URLClassLoader & custom ClassLoader
56+ Démo 3 : URLClassLoader
5457-----------
5558
56- # Build (dans le bon répertoire)
57- cd ../classpath-demo; mvn install; cd ../classpath-demo-work
58-
5959# Ça ne marche pas
6060java -cp lib/message-launcher.jar fr.sewatech.classpath.Hello
6161
@@ -68,6 +68,12 @@ java -cp lib/message-launcher.jar fr.sewatech.classpath.HelloViaURL
6868# Ça ne marche pas
6969java -cp lib/message-launcher.jar:lib/message-service.jar fr.sewatech.classpath.HelloViaURL
7070
71+ Démo 4 : Custom ClassLoader
72+ -----------
73+
74+ # Build (dans le bon répertoire)
75+ cd ../classpath-demo; mvn install; cd ../classpath-demo-work
76+
7177# Ça marche
7278java -cp lib/message-launcher.jar fr.sewatech.classpath.HelloViaMvnRepo 2.0-SNAPSHOT
7379# Ça marche
@@ -78,13 +84,13 @@ java -cp lib/message-launcher.jar:lib/message-service.jar fr.sewatech.classpath.
7884# Ça marche
7985java -cp lib/message-launcher.jar:lib/message-service.jar fr.sewatech.classpath.HelloViaMvnRepo 2.0-SNAPSHOT local
8086
81- Démo 3 : jar hell
87+ Démo 5 : jar hell
8288-----------
8389
8490# Ça ne marche pas
8591java -cp "lib/*" fr.sewatech.classpath.Hello log
8692
87- Démo 4 : jboss modules
93+ Démo 6 : jboss modules
8894-----------
8995
9096# Build (dans le bon répertoire)
@@ -95,19 +101,76 @@ java -jar jboss-modules/jboss-modules.jar -mp jboss-modules fr.sewatech.message-
95101# Ça marche, mieux qu'avant
96102java -jar jboss-modules/jboss-modules.jar -mp jboss-modules fr.sewatech.message-launcher log
97103
98- Démo 5a : java 9 - mode classpath
104+ Démo 7 : jigsaw
105+ -----------
106+
107+ # OK
108+ java --module-path jigsaw-modules -m message.launcher/fr.sewatech.classpath.Hello
109+ # KO
110+ java --module-path jigsaw-modules -m message.launcher/fr.sewatech.classpath.Hello log
111+
112+ Démo 8 : modular JDK
99113-----------
100114
101- export JAVA_HOME=~/Projet/hasalex/jigsaw/jdk-9b134.jdk/Contents/Home
115+ # compiler misc-example sans "requires java.xml.bind"
116+
117+ Démo 9 : jigsaw - mode classpath
118+ -----------
102119
103- # Ça ne marche toujours pas
104- java fr.sewatech.classpath.Count 40 45
105120# Ça marche encore
106- java -cp lib/message-launcher.jar fr.sewatech.classpath.Count 40 45
121+ java -cp jigsaw-modules/misc-examples.jar fr.sewatech.classpath.example.Count 40 45
122+ java -cp "jigsaw-modules/*" fr.sewatech.classpath.Hello
123+
124+ # Ça ne marche plus
125+ java -cp lib/misc-examples.jar fr.sewatech.classpath.example.JaxBExample
126+ # Ça marche
127+ java --add-modules java.xml.bind -cp lib/misc-examples.jar fr.sewatech.classpath.example.JaxBExample
128+
129+ Démo 10 : requires
130+ -----------
131+
132+ # Montrer le code
133+ # - automatic module
134+
135+ # Dans message-service
136+ # virer "requires message.common"
137+ # => compile HS
138+
139+ # Dans message-printer
140+ # passer "requires message.common" en transitive
141+
142+ # static / optional
143+ java --module-path jigsaw-modules -m misc.examples/fr.sewatech.classpath.example.JaxBExample
144+ # dans misc-example, mettre "requires java.xml.bind" en static
145+ java --module-path jigsaw-modules -m misc.examples/fr.sewatech.classpath.example.JaxBExample
146+ java --add-modules java.xml.bind --module-path jigsaw-modules -m misc.examples/fr.sewatech.classpath.example.JaxBExample
147+
148+ Démo 11 : export
149+ -----------
150+
151+ # Patch slf4j with scripts/prepare-slf4j.sh
152+ java --module-path jigsaw-modules -m message.launcher/fr.sewatech.classpath.Hello log
153+ # l'erreur est plus explicite ; si on avait eu ce jar à la compilation,l'erreur aurait eu lieu à la compilation
154+
155+ Démo 12 : classloader
156+ -----------
157+
158+ # OK
159+ java -cp jigsaw-modules/message-launcher.jar fr.sewatech.classpath.HelloViaURL
160+ # KO
161+ java -cp jigsaw-modules/message-launcher.jar:lib/message-service.jar fr.sewatech.classpath.HelloViaURL
162+
107163# Erreur : -Xbootclasspath/p is no longer a supported option
108- java -Xbootclasspath/p:lib/message-launcher .jar fr.sewatech.classpath.Count 40 45
164+ java -Xbootclasspath/p:jigsaw-modules/misc-examples .jar fr.sewatech.classpath.example .Count 40 45
109165# Erreur : -Djava.endorsed.dirs=lib is not supported
110- java -Djava.endorsed.dirs=lib fr.sewatech.classpath.Count 40 45
166+ java -Djava.endorsed.dirs=lib fr.sewatech.classpath.example.Count 40 45
167+
168+ # Prepare patch with scripts/prepare-patch.sh
169+ java --module-path jigsaw-modules -m misc.examples/fr.sewatech.classpath.example.Count
170+ java --patch-module java.base=../classpath-demo/misc-examples/target/patch-classes --module-path jigsaw-modules -m misc.examples/fr.sewatech.classpath.example.Count
171+
172+ Annexe
173+ -----------
111174
112175# KO
113176java -cp lib/message-launcher.jar fr.sewatech.classpath.Hello
@@ -132,15 +195,10 @@ java -cp "lib/*" fr.sewatech.classpath.Hello log
132195java -cp lib/misc-examples.jar fr.sewatech.classpath.example.StandardClassLoading
133196java --add-modules java.xml.bind -cp lib/misc-examples.jar fr.sewatech.classpath.example.StandardClassLoading
134197
135- Démo 5b : java 9 - jigsaw
136- -----------
137-
138- # Build (dans le bon répertoire) avec JDK 9 mais pas plus que build 134
139- export JAVA_HOME=~/Projet/hasalex/jigsaw/jdk-9b134.jdk/Contents/Home
198+ # Build (dans le bon répertoire) avec JDK 9 avec jigsaw-nightly
199+ export JAVA_HOME=~/Projet/hasalex/jigsaw/jdk-9b138.jdk/Contents/Home
140200cd ../classpath-demo; mvn clean install -Pjigsaw; cd ../classpath-demo-work
141201
142- # OK
143- java --module-path jigsaw-modules -m message.launcher/fr.sewatech.classpath.Hello
144202# OK
145203java --module-path jigsaw-modules -m message.launcher/fr.sewatech.classpath.HelloViaURL
146204# OK
@@ -149,16 +207,7 @@ java --module-path jigsaw-modules -m message.launcher/fr.sewatech.classpath.Hell
149207# KO
150208java --module-path jigsaw-modules -m message.launcher/fr.sewatech.classpath.Hello log
151209
152- # => expliquer les modules, requires, exports
153- # => expliquer les modules automatiques
154-
155210# Modules vs Classpath : aucun changement visible
156211# classpath = unnamed module
157212java --add-modules java.xml.bind -cp lib/misc-examples.jar fr.sewatech.classpath.example.StandardClassLoading
158213java --module-path jigsaw-modules -m misc.examples/fr.sewatech.classpath.example.StandardClassLoading
159-
160- Démo 6 : java 9 - jigsaw++
161- -----------
162-
163- # JDK 9 b136 - avec jigsaw nightly
164- export JAVA_HOME=~/Projet/hasalex/jigsaw/jdk-9b136.jdk/Contents/Home
0 commit comments