2011-03-06 18 views

cevap

0

Bu çalışmıyor?

System.getProperty('java.class.path') 
+1

Boş :(sınıf yolu formu sınıf yükleyici almak mümkün mü değil mi? – yegor256

+1

Groovy korkak şeyler görünüyor ve java.class.path Groovy -cp komut satırı seçeneği ile geçti sınıfyolu içermiyor. –

+0

Bu işe yaramıyor – osa

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

Ne yazık ki içinde Groovy kullanıyorum boştur [gmaven eklentisi] (http: //docs.codehaus.org/display/GMAVEN/Executing+Groovy+Code) Sınıf yükleyiciden sınıf yolunu bir şekilde almak mümkün mü? – yegor256

0

isterseniz gerekirse bu CLASSPATH'e içinde CLASSPATH ve dosyaları alın Ne olduğunu sağlayarak, Sen SystemClassLoader gelen sınıf yolunu almak gerekir o

System.getProperty("java.class.path", ".").tokenize(File.pathSeparator).each { 
           println it        
       } 
2

görebilirsiniz bir URLClassLoader:

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

Aynı şey: hem "CLASSPATH" ortam değişkeni hem de komuttaki '-classpath ' satırın bu listede hiçbir etkisi yoktur, en azından benim durumumda, wha ile aynıdır 'java.class.path' özelliği görüyorum. – osa

+0

Ancak dinamik sınıf için bir yol ekleme hakkında http://groovy.codehaus.org/How+can+I+dynamically+add+a+library+to+the+classpath bakın. this.class.classLoader.rootLoader.addURL (yeni URL ("dosya: /// d: /drivers/ojdbc14.jar")) – osa

1

java.class.path en azından Groovy 2.1.6, düzgün çalışmıyor (Ma c OS X 10.6.8).

HelloWorld.groovy: Sonra

public class HelloWorld { 

    public static void main(def args) { 
     System.out.println("Hello, world!\n"); 
     System.out.println(System.getenv("CLASSPATH")+"\n"); 
     System.out.println(System.getProperty("java.class.path")); 
    } 
} 

export CLASSPATH=/etc 
groovy -classpath /usr HelloWorld.groovy 

Sonuç:

Hello, World! 

/etc 

/Applications/groovy-2.1.6/lib/groovy-2.1.6.jar 

Şimdi, bu HelloWorld.java bağlıdır: (ben o Groovy ve Java olmadıklarından biraz değiştirmek zorunda % 100 uyumlu)

Şimdi
public class HelloWorld { 
    public static void main(String args[]) { 
     System.out.println("Hello, world!\n"); 
     System.out.println(System.getenv("CLASSPATH")+"\n"); 
     System.out.println(System.getProperty("java.class.path")); 
    } 
} 

:

javac HelloWorld.java 
export CLASSPATH=/etc 
java -classpath /usr HelloWorld 

Sonuç: Sonra

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld 
Caused by: java.lang.ClassNotFoundException: HelloWorld 
etc. ................... 

:

java -classpath /usr:. HelloWorld 

Sonuç:

Hello, world! 

/etc 

/usr:. 
Ben Groovy çalışması için nasıl bulursam güncelleriz 10

... classloader ağaca gidin ve her classloader ve ilgili sınıfyolu çıktısı olacak http://blog.blindgaenger.net/print_groovys_classpath_for_debugging.html Bu kod çalınan

5

Utanmazıyım.

def printClassPath(classLoader) { 
    println "$classLoader" 
    classLoader.getURLs().each {url-> 
    println "- ${url.toString()}" 
    } 
    if (classLoader.parent) { 
    printClassPath(classLoader.parent) 
    } 
} 
printClassPath this.class.classLoader 
İlgili konular