seb*_*ian 4 java web-applications classpath
我需要读取CLASSPATH当前Web应用程序的条目.在CLASSPATH我与此同名的许多文件.我想检查它们在classpath中出现的位置.例如:path:\file.txt;path2:\file.txt....
谢谢您的帮助.
亲切的问候塞巴斯蒂安
试试这些:
// 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)
您需要separator和fileSep因为:并且\高度依赖于系统.
小智 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)