获取用于执行Web应用程序的类路径条目

seb*_*ian 4 java web-applications classpath

我需要读取CLASSPATH当前Web应用程序的条目.在CLASSPATH我与此同名的许多文件.我想检查它们在classpath中出现的位置.例如:path:\file.txt;path2:\file.txt....

谢谢您的帮助.

亲切的问候塞巴斯蒂安

vbe*_*nce 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");
Run Code Online (Sandbox Code Playgroud)

您需要separatorfileSep因为:并且\高度依赖于系统.


小智 5

使用上面的塞巴斯蒂安回答,我制作了这段代码,这对我有用。

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

它给出了这个结果:

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:
org.apache.catalina.loader.StandardClassLoader@35c0e45a

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
Run Code Online (Sandbox Code Playgroud)