如何在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