9
votes

Comment obtenir de la classe à Groovy?

Comment puis-je obtenir la valeur actuelle du ClassePath à Groovy?


0 commentaires

6 Réponses :


-1
votes

Cela ne fonctionne pas? XXX


3 commentaires

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?



-1
votes
def classpath = System.properties["java.class.path"]

1 commentaires

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?



0
votes

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                             
                }


0 commentaires

3
votes

Vous devriez pouvoir obtenir le path de classe du système SystemClassloader, en fournissant un URLClassloader:

URL[] classPathUrls = ClassLoader.getSystemClassLoader().getURLs();


2 commentaires

Même chose: la variable classpath et le -ClassPath 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 .


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"))



1
votes

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> xxx pré>

alors p> xxx pré>

résultat: p> xxx pré>

maintenant maintenant , c'est helloworld.java code>: (Je devais le changer un peu comme groovy et Java ne sont pas compatibles à 100%): p> xxx pré>

maintenant: p> xxx pré>

résultat: p> xxx pré>

alors: p> xxx pré>

résultat : P>

Hello, world!

/etc

/usr:.


0 commentaires

15
votes

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


0 commentaires