2011-03-11 9 views
4

현재 웹 응용 프로그램에 대해 CLASSPATH 항목을 읽어야합니다. CLASSPATH에는 동일한 이름을 가진 많은 파일이 있습니다. 클래스 패스에 나타나는 위치를 확인하고 싶습니다. 예 : path:\file.txt;path2:\file.txt....웹 응용 프로그램을 실행하기위한 클래스 경로 항목 가져 오기

도움 주셔서 감사합니다.

종류는 세바스찬

+0

유사 : http://stackoverflow.com/questions/3923129/get-a-list-of-resources-from-classpath-directory –

답변

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

'문자열

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

그것은이 결과를 준 path = System.getProperty ("java.library.path");'내가 찾던 것을 제공하지 않는다. – sebastian

+0

수정 됨. 대신에'java.class.path'를 사용해주세요. – vbence

+0

나는 또한 시도되었습니다. 'String path = System.getProperty ("java.class.path");'나는 env 변수를 리턴하고 웹 어플리케이션이 자원을 찾을 때 사용할 변수가 아니라고 가정합니다. 왜냐하면 나는 파일을 포함하지 않는 위치를 얻었고 그 파일은 발견 될 것이다. – sebastian

2

일반적으로 파일은 WEB-INF/lib 및 WEB-INF/classes에 있어야합니다. 신비가 뭐야?

+0

당신은 java/endorsed와 tomcat/lib에 우선권을 가지고있는 물건을 가질 수도 있습니다 : – extraneon

+0

지금은'System.getProperty ("java.class.path")'를 실행하면 콘솔 응용 프로그램이나 멋진 문자열을 테스트 할 수 있습니다. 함께; separeted 항목. 웹 응용 프로그램에서도 이걸 얻고 싶습니다. 나는 웹 애플리케이션 클래스 패스가 생성되고'System.getProperty ("java.class.path")'가 나에게 내가 원하는 것을 제공한다고 가정한다. 나는 이것을 webapplication으로 시도하고 나는 단지 2 개의 엔트리 만 얻는다. 콘솔 앱이나 테스트를 사용하면 더 많은 것을 얻을 수 있습니다. – sebastian

3

위의 세바스찬 대답을 사용하여이 코드를 만들었습니다.이 코드는 나를 위해 속임수를 사용했습니다.

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 
관련 문제