내 jar 파일에 추가하려는 외부 파일이 몇 개 있으며 클래스 내의 파일에 액세스합니다. java -jar
명령을 사용하여 명령 줄에서이 jar 파일을 실행 중입니다. 따라서 절대 경로를 사용하면 파일 내용에 액세스 할 수 있지만 상대 경로를 사용하면 java.io.IOException: (No such file or directory)
이됩니다. 두 파일을 모두 src/main/resorces
디렉토리에 포함 시켰습니다. 나는 file.conf, /file.conf, ./file.conf
을 사용해 보았지만 그 중 아무 것도 작동하지 않았습니다. 또한 build.gradle에 파일을 포함 시키려고 시도했습니다
from{ ["file1.conf","file2.conf"] }
.그라디언트를 사용하여 jar에 외부 설정 파일 추가
어떻게하면 파일의 상대 경로를 사용하여 내 Java 코드에서 파일 내용에 액세스 할 수 있습니까?
URL url = ClassLoader.getSystemClassLoader(). getResource ("file.conf");와 url.getPath()를 시도했지만 작동하지 않았습니다. 나는 여전히'(그런 파일이나 디렉토리가 없다 '). 항아리 뿌리에서 내 파일을 볼 수 있습니다. 이클립스에서는 잘 돌아 가지 만'java -jar' 커맨드에서는 그렇지 않다. –
'URL url = MyClass.class.getResource ("/ file.conf");' –
속성 파일을 만들었고 제대로 작동 했습니까? 그러나 .conf 파일에서는 작동하지 않습니다. 그래서'url.getPath()'에 의해 file.conf의 경로를 출력했습니다. '/Users/user/Desktop/workspace/project/build/libs/myProject-all-1.0.jar!/file.conf'와 같은 것을 보여줍니다. 그게! 항아리 후? 하지만 이클립스에서 그 경로를 출력하면 파일의 올바른 경로 즉'../../ Desktop/workspace/myProject/bin/file.conf'가 출력됩니다 –