如何在Groovy中獲得當前值CLASSPATH
?如何獲取Groovy中的類路徑?
回答
這不行?
System.getProperty('java.class.path')
def classpath = System.properties["java.class.path"]
不幸的是,當我在[gmaven plugin]中使用Groovy時(http: //docs.codehaus.org/display/GMAVEN/Executing+Groovy+Code)。是否有可能以某種方式從類加載器獲取類路徑? – yegor256 2011-03-06 18:55:56
,如果你想獲取CLASSPATH和文件,如果需要的CLASSPATH,您可以查看它
System.getProperty("java.class.path", ".").tokenize(File.pathSeparator).each {
println it
}
你應該能夠得到從SystemClassLoader類路徑,只要它是一個URLClassLoader的:
URL[] classPathUrls = ClassLoader.getSystemClassLoader().getURLs();
同樣的事情:命令中的'CLASSPATH'環境變量和'-classpath'對這個列表沒有任何影響,至少在我的情況下,它和wha是一樣的我在屬性'java.class.path'中看到。 – osa 2013-10-11 20:21:24
但是,請參閱http://groovy.codehaus.org/How+can+I+dynamically+add+a+library+to+the+classpath關於動態添加類路徑的路徑。 this.class.classLoader.rootLoader。addURL(新的URL(「file:/// d:/drivers/ojdbc14.jar」)) – osa 2013-10-11 20:39:09
java.class.path
不能正常工作,至少在Groovy 2.1.6(馬OS X 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
:(我不得不改變它有點爲Groovy和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:.
如果我找出如何使在Groovy中工作,我會更新...
無恥從http://blog.blindgaenger.net/print_groovys_classpath_for_debugging.html 此代碼被盜會漲的類加載器樹,並打印輸出每一個類加載器和相關的類路徑。
def printClassPath(classLoader) {
println "$classLoader"
classLoader.getURLs().each {url->
println "- ${url.toString()}"
}
if (classLoader.parent) {
printClassPath(classLoader.parent)
}
}
printClassPath this.class.classLoader
- 1. 如何從Groovy中的完整路徑獲取當前目錄?
- 2. 使用groovy獲取桌面路徑
- 3. Groovy類路徑問題
- 4. groovy腳本類路徑
- 5. 獲取的類C#路徑
- 6. 如何獲取類路徑中的包和/或類的列表?
- 7. 如何獲取JSON路徑?
- 8. 如何獲取R.java路徑?
- 9. 獲取java.io.FileNotFoundException(NetBeans中的類路徑.jasper)
- 10. 如何獲取%CD的父路徑%如何獲取當前%CD%的父路徑%
- 11. 如何獲得groovy中的目錄路徑
- 12. 如何在Eclipse插件中獲取IJavaProject的類路徑作爲文件路徑?
- 13. 如何在AngularJS中獲取當前路徑的路徑名?
- 14. 如何在顫動中獲取當前的路徑路徑?
- 15. 如何獲取C#中安裝程序類中的msi路徑
- 16. 從類獲取完整的類路徑
- 17. Jenkins Groovy類路徑上的軟件包?
- 18. 如何在JavaScript中獲取根路徑?
- 19. 如何在xml中獲取路徑
- 20. 如何在ASP.NET中獲取路徑名?
- 21. 如何從路徑中獲取圖片
- 22. 如何在類庫libary中獲取正確的路徑文件
- 23. 如何在類庫中獲取文件的完整路徑?
- 24. 如何從JSP中的文件類型獲取完整路徑?
- 25. 如何從jar文件中獲取mp3的類路徑
- 26. 如何獲取類庫中內容的文件路徑
- 27. 如何從HDFS路徑中獲取絕對路徑
- 28. 獲取路徑
- 29. 獲取的路徑
- 30. Groovy無法運行類路徑
它是空的:(是否有可能得到的classpath形式的類加載器? – yegor256 2011-03-06 18:53:56
Groovy中似乎做時髦的東西,而java.class.path不包含常規的-cp命令行選項傳遞的類路徑。 – 2011-09-20 12:41:24
這不起作用 – osa 2013-10-11 20:10:35