lorrainejug - le classpath n'est pas mort
Post on 22-Aug-2015
271 Views
Preview:
TRANSCRIPT
- 1. Alexis Hassler Le classpath n'est pas mort... Janvier 2015 mais presque
- 2. "Classpath is dead!" Mark Reinhold JavaOne 2009
- 3. Classpath Classloader Mort? Succession
- 4. Alexis Hassler Dveloppeur, formateur Java Indpendant Co-leader du
- 5. Classpath
- 6. String hello = "Bonjour Devoxx"; MyStuff var; Chercher les classes CLASSPATH
- 7. -classpath java -cp hello-lib.jar HelloWorld
- 8. Manifest Manifest-Version: 1.0 Class-Path: hello-lib.jar Main-Class: HelloWorld
- 9. Connatre le classpath System.getProperty("java.class.path");
- 10. Erreurs java.lang.NoClassDefFoundError java.lang.ClassNotFoundException
- 11. Classpath Gr par des classloaders
- 12. Classloader
- 13. java.lang.ClassLoader loadClass(String name) : Class getResource(String name) : URL getResources(String name) : Enumeration getResourceAsStream(String name) : InputStream getParent() : ClassLoader
- 14. Classloader sun.misc.Launcher$AppClassLoader CLASSPATH MyStuff.class.getClassLoader()
- 15. Bootstrap Classloader null classloader.getClass().getClassLoader()
- 16. Bootstrap Classloader BootstrapClassLoader
- 17. ExtensionClasspath sun.misc.Launcher$ExtClassLoader sun.misc.Launcher$AppClassLoader Dlgation BootstrapClassLoader Parent first Parent first System ClassLoader Extension ClassLoader
- 18. Dlgation java -cp hello-lib.jar ... System.getProperty("java.class.path"); ClasspathSystem ClassLoader
- 19. Dlgation java -Djava.ext.dirs=~/.java8/ext ... System.getProperty("java.ext.dirs"); Extension Extension ClassLoader
- 20. Dlgation java -Xbootclasspath:hello-rt.jar ... BootstrapClassLoader System.getProperty("sun.boot.class.path");
- 21. bootclasspath java -Xbootclasspath:hello-rt.jar ... java -Xbootclasspath/a:hello-lib.jar ... java -Xbootclasspath/p:hello-lib.jar ...
- 22. Endorsed java -Djava.endorsed.dirs=~/.java8/endorsed ... Endorsed BootstrapClassLoader
- 23. Endorsed APIs standards hors JCP org.omg (CORBA), org.w3c.dom, org.xml.sax (XML) APIs standalone JAXP, JAXB, Scripting, Compiler API,...
- 24. http://github.com/hasalex/classpath-demo
- 25. classloader-demo Dmonstration BootstrapClassLoader java -cp cl-demo.jar fr.sewatech.classpath.Count System ClassLoader
- 26. classloader-demo Dmonstration BootstrapClassLoader java -Xbootclasspath/p:cl-demo.jar fr.sewatech.classpath.Count
- 27. URLClassloader java.net.URLClassLoader sun.misc.Launcher$AppClassLoader sun.misc.Launcher$ExtClassLoader URLURLURL
- 28. URLClassloader System ClassLoader Bootstrap ClassLoader URL ClassLoader URL ClassLoader URL ClassLoader Parent first Parent first Parent first
- 29. http://github.com/hasalex/classpath-demo
- 30. Dmonstration java -cp cl-demo.jar:msg-main.jar fr.sewatech.classpath.Hello classloader-demo message-main message-common message-printer message-main
- 31. classloader-demo message-main message-common message-printer message-main Dmonstration java -cp cl-demo.jar:msg-main.jar fr.sewatech.classpath.HelloViaUrl message-mainClasspath URLClassloader
- 32. Dmonstration classloader-demo message-common message-printer message-main message-main System ClassLoader ParentFirst ClassLoader
- 33. FLTM Classloader Fait Le Toi-Mme
- 34. Usages Application Servers JRebel Javassist, CGLib,...
- 35. Tomcat System Bootstrap Common Webapp1 Webapp2 Webapp3 Local First
- 36. JBoss AS 5 System Bootstrap Common Web App Ent App Web Module EJB Module Local First Repo First
- 37. Erreurs ClassCastException MyStuff cannot be cast to MyStuff W TF ?
- 38. Erreurs URL ClassLoader URL ClassLoader MyStuff var = MyStuffFactory.build(); return new MyStuff() ;
- 39. http://github.com/hasalex/classpath-demo
- 40. Dmonstration classloader-demo message-common message-printer message-main message-main System ClassLoader ParentFirst ClassLoader
- 41. Dmonstration classloader-demo message-common message-printer message-main message-main System ClassLoader LocalFirst ClassLoader
- 42. Mort?
- 43. http://www.ironmaidenwallpaper.com/
- 44. Dpendances Maven, Gradle, ...
- 45. Dpendances Classpath
- 46. http://github.com/hasalex/classpath-demo
- 47. message-main message-common Dmonstration message-printer classloader-demo slf4j-api 1.5.11 slf4j-api 1.7.2
- 48. Succession
- 49. Granularit Classpath Application
- 50. Granularit Application Web / JavaEE Librairies partagesApplication
- 51. Modularit Application Web / JavaEE Application
- 52. 1999 Java embarqu Java SE Java serveur
- 53. OSGi OS + Hardware Java Execution Environment Applications (bundles) Module Life Cycle Services
- 54. JBoss Modules Sous-projet de Wildfly Inspir de Jigsaw Base de JBoss OSGi
- 55. JBoss Modules java -jar jboss-modules.jar -mp path/to/modules my.main.module.name Java SE
- 56. JBoss Modules hibernate-infinispan-4.1.6.Final.jar module.xml hibernate-core-4.1.6.Final.jar hibernate-entitymanager-4.1.6.Final.jar modules com fr org ... org hibernate main
- 57.
- 58. WildFly bin Scripts de dmarrage bundles Composants OSGi modules Modules JBoss standalone Profil standalone domain Profil domain
- 59. bin Scripts de dmarrage bundles Composants OSGi modules Modules JBoss standalone Profil standalone domain Profil domain WildFly message.war
- 60. WildFly message.war
- 61. http://github.com/hasalex/classpath-demo
- 62. Tomcat Classloading WEB-INF/classes, WEB-INF/lib Webapp ClassLoader $CATALINA_HOME/lib System ClassLoader Common Class Loader
- 63. Tomcat Module? WEB-INF/classes, WEB-INF/lib System ClassLoader Common Class Loader Webapp ClassLoader $CATALINA_HOME/lib Module ClassLoader modules
- 64. Tomcat https://github.com/hasalex/tomcat-modules
- 65. Jigsaw Projet OpenJDK Intgr au JDK 7 9 (2016) 8 (2012) (2008) . . .
- 66. Jigsaw JEP 200:The Modular JDK JEP 201: Modular Source Code JEP 220:The Modular Run-Time Images JEP xxx:The JDK Module System JSR 376: Java Platform Module System
- 67. J'imagine qu'il est tentant, si le seul outil que vous avez est un marteau, de traiter tout problme comme si c'tait un clou. Abraham MaslowPaul Watzlawick
- 68. @AlexisHassler http://alexis-hassler.com alexis.hassler@sewatech.fr http://sewatech.fr
top related