Comment puis-je obtenir la valeur actuelle du ClassePath code> à Groovy? P>
6 Réponses :
Cela ne fonctionne pas?
Il est vide :( est-il possible d'obtenir le chargeur de classe de classe de classe?
Groovy semble faire des trucs funky, et le Java.class.Path ne contient pas la classe de classe passée avec l'option de ligne de commande de Groovy's -CP.
Il ne montre que Groovy Jar - pourquoi Stackoverflow.com/a/27131375/1042297 n'est pas accepté réponse?
def classpath = System.properties["java.class.path"]
Malheureusement, il est vide quand j'utilise Groovy à l'intérieur Plugin Gmaven . Est-il possible d'obtenir de la classe de classe de la classe Chargeuse?
Obtenez le path de classe et des fichiers si vous le souhaitez dans la catégorie de classe si nécessaire, vous pouvez le voir
System.getProperty("java.class.path", ".").tokenize(File.pathSeparator).each { println it }
Vous devriez pouvoir obtenir le path de classe du système SystemClassloader, en fournissant un URLClassloader:
URL[] classPathUrls = ClassLoader.getSystemClassLoader().getURLs();
Même chose: la variable code> classpath code> et le -ClassPath code> dans la ligne de commande n'a aucun effet sur cette liste. Au moins dans mon cas, il est identique à ce que je vois dans la propriété
java.class.path code>.
Cependant, voir Groovy.Codehaus.org / ... sur l'ajout de manière dynamique d'un chemin à la classe de classe. ce.class.classloader.rootloader.addurl (nouveau URL ("Fichier: /// D: /Drivers/ojdbc14.jar"))
alors p> résultat: p> maintenant maintenant , c'est maintenant: p> résultat: p> alors: p> résultat : P> java.class.path code> ne fonctionne pas correctement, au moins dans Groovy 2.1.6 (Mac OS X 10.6.8).
helloworld.groovy code> : p>
helloworld.java code>: (Je devais le changer un peu comme groovy et Java ne sont pas compatibles à 100%): p>
Hello, world!
/etc
/usr:.
volé sans scrupule de http://blog.blindgaenger.net/print_groovys_classpath_for_debugging.html Ce code augmentera l'arborescence de classier et l'impression de chaque chargeur de classe et de la classe de classe associée.
def printClassPath(classLoader) { println "$classLoader" classLoader.getURLs().each {url-> println "- ${url.toString()}" } if (classLoader.parent) { printClassPath(classLoader.parent) } } printClassPath this.class.classLoader