2011-03-06 7 views

उत्तर

0

यह काम नहीं करता है?

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

यह खाली :(classpath प्रपत्र वर्ग लोडर पाने के लिए यह संभव है है? – yegor256

+1

ग्रूवी फैशनेबल सामान करने के लिए लगता है, और java.class.path classpath ग्रूवी के -cp कमांड लाइन विकल्प के साथ पारित कर दिया शामिल नहीं है। –

+0

यह काम नहीं करता है। – osa

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

दुर्भाग्यवश यह खाली है जब मैं ग्रोवी का उपयोग कर रहा हूं [gmaven प्लगइन] (http: //docs.codehaus.org/display/GMAVEN/Executing+Groovy+Code)। क्या क्लास लोडर से क्लासपाथ किसी भी तरह से प्राप्त करना संभव है? – yegor256

0

CLASSPATH और फ़ाइलों उन CLASSPATH अगर जरूरत में अगर आप चाहते हैं जाओ आप इसे देख सकते हैं

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

आप SystemClassLoader से classpath प्राप्त करने में सक्षम होना चाहिए, प्रदान यह है एक URLClassLoader:

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

वही बात: दोनों 'क्लासस्पैट' पर्यावरण चर और कमांड में '-classpath' लाइन इस सूची पर कोई प्रभाव नहीं डालती है। कम से कम मेरे मामले में यह वही है मैं संपत्ति 'java.class.path' में देखता हूं। – osa

+0

हालांकि, http://groovy.codehaus.org/How+can+I+ गतिशील रूप से+add+a+library+to+the+classpath देखें जो गतिशील रूप से क्लासपाथ के पथ को जोड़ने के बारे में है। this.class.classLoader.rootLoader।addURL (नया यूआरएल ("फाइल: /// डी: /drivers/ojdbc14.jar")) – osa

1

java.class.path, ठीक से काम नहीं करता है कम से कम ग्रूवी 2.1.6 में (मा सी ओएस एक्स 10.6.8)।

HelloWorld.groovy:

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 

परिणाम:

Hello, World! 

/etc 

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

अब, यह HelloWorld.java है: (मैं इसे के रूप में ग्रूवी और जावा नहीं हैं थोड़ा बदलना पड़ा 100% संगत):

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 

परिणाम:

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

तब:

java -classpath /usr:. HelloWorld 

परिणाम:

Hello, world! 

/etc 

/usr:. 

अगर मुझे पता यह ग्रूवी में काम करने के लिए मैं कैसे अपडेट कर देंगे ...

5

बेशर्म http://blog.blindgaenger.net/print_groovys_classpath_for_debugging.html इस कोड से चोरी classloader पेड़ पर जा सकते हैं और प्रत्येक classloader और संबद्ध classpath प्रिंटआउट होगा।

def printClassPath(classLoader) { 
    println "$classLoader" 
    classLoader.getURLs().each {url-> 
    println "- ${url.toString()}" 
    } 
    if (classLoader.parent) { 
    printClassPath(classLoader.parent) 
    } 
} 
printClassPath this.class.classLoader 
संबंधित मुद्दे