2011-03-11 84 views
4

我需要为当前Web应用程序读取CLASSPATH条目。在CLASSPATH我有很多这个同名的文件。我想检查他们在classpath中出现的位置。例如:path:\file.txt;path2:\file.txt...获取用于执行Web应用程序的类路径条目

谢谢你的帮助。

亲切的问候 塞巴斯蒂安

+0

类似:http://stackoverflow.com/questions/3923129/get-a-list-of-resources-from-classpath-directory – 2011-03-11 11:36:40

回答

6

尝试这些:

// get the compact classpath value 
String path = System.getProperty("java.class.path"); 

// the character : on windows and ; on unixes 
String separator = System.getProperty("path.separator"); 

// the character \ on windows and/on unixes 
String fileSep = System.getProperty("file.separator"); 

您需要separatorfileSep因为:\是高度依赖于系统的。

+0

'字符串path = System.getProperty(“java.library.path”);'这不会给我所寻找的。 – sebastian 2011-03-11 11:48:59

+0

已编辑。改为使用'java.class.path'。 – vbence 2011-03-11 11:51:46

+0

我也试过了。 'String path = System.getProperty(“java.class.path”);''''''''''''''''''''''''''''''假设它返回env变量而不是变量,web应用程序将使用它来查找资源。因为我得到的地方不包含文件,文件将被创建。 – sebastian 2011-03-11 11:54:44

2

一般情况下,你的文件应该是在WEB-INF/lib和WEB-INF/classes中 - 这是它。什么是神秘?

+0

你也可以在java/endorsed和tomcat/lib中有优先权的东西:) – extraneon 2011-03-11 11:46:54

+0

我现在可以执行'System.getProperty(“java.class.path”)'给我一个控制台应用程序或测试一个不错的String与;分开的条目。我想为web应用程序获得这个。我假设在Web应用程序中生成类路径,并且'System.getProperty(“java.class.path”)'不会给我我想要的东西。我尝试使用web应用程序,我只有2个条目。随着控制台应用程序或测试我得到许多更多。 – sebastian 2011-03-11 11:48:17

3

使用上面的sebastian答案,我做了这段代码,它为我做了诡计。

ClassLoader c=getClass().getClassLoader(); 
logmsg("c="+c); 
URLClassLoader u=(URLClassLoader)c; 
URL[] urls=u.getURLs(); 
for (URL i : urls) { 
    logmsg("url: "+i); 
} 

它给了这样的结果:

classpath=/dd/apache-tomcat-7.0.29/bin/bootstrap.jar:/dd/apache-tomcat-7.0.29/bin/tomcat-juli.jar 
c=WebappClassLoader 
    context: /xxx 
    delegate: false 
    repositories: 
    /WEB-INF/classes/ 
----------> Parent Classloader: 
[email protected] 

url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/classes/ 
url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/lib/commons-codec.jar 
url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/lib/commons-fileupload.jar 
url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/lib/commons-logging-api.jar 
url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/lib/commons-logging.jar 
url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/lib/freemarker.jar 
url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/lib/h2.jar 
url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/lib/js.jar 
url: file:/DT/DEV/dev/mko/apache-tomcat-7.0.29/webapps/xxx/WEB-INF/lib/log4j-1.2.8.jar 
相关问题