[JAVA] .exe(.jar)파일 실행시 java.lang.IllegalArgumentException: URI is not hierarchical 에러발생
2020. 12. 29. 00:48ㆍError/에러
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(계층)'에러 발생
출처 :
참고:
stackoverflow.com/questions/10144210/java-jar-file-use-resource-errors-uri-is-not-hierarchical
728x90