[JAVA] .exe(.jar)파일 실행시 java.lang.IllegalArgumentException: URI is not hierarchical 에러발생

2020. 12. 29. 00:48Error/에러

728x90

 

[문제상황]

특정 클래스에서 "conf.propertise"파일 경로를 읽고, new File()로 접근시도하였는데

이클립스에서 테스트할 때는 에러발생하지 않았는데,

.exe파일 실행시 아래코드 'java.lang.IllegalArgumentException:URI is not hierarchical' 발생함

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Properties prop = new Properties();
prop.load(classLoader.getResourceAsStream("conf.properties"));
URL url = classLoader.getResource("conf.properties");
prop.store(new FileOutputStream(new File(url.toURI())), "Setting");
			

 

 

[문제발생이유]

.exe(.jar)파일 내부에 있는 파일은 'jar:file:URI'를 가지는데, new File(URI fileURL)메서드로 접근할 수 없음.

.exe(.jar)파일 내부에 있는 파일은 'file:URI'가 아니라 'jar:file:URI'이므로 'URI is not hierarchial(계층)'에러 발생

 

 

 

출처 :

m.blog.naver.com/PostView.nhn?blogId=maedk01&logNo=220540224797&proxyReferer=https:%2F%2Fwww.google.com%2F

 

참고:

stackoverrun.com/ko/q/411641

stackoverflow.com/questions/10144210/java-jar-file-use-resource-errors-uri-is-not-hierarchical

 

728x90