Java Swing 응용 프로그램을 개발 중이며 암호 해독 용 키가 들어있는 파일 (예 : key.text)이 있습니다. 제 3 자 라이브러리를 사용하여 암호 해독이 수행됩니다. 해독을 위해 key.txt를 라이브러리 메소드에 전달 중입니다. 파일 경로가 JAR 파일 내부에서 작동하지 않습니다.
Eclipse 작업 공간 구조 I 이클립스에서 실행하고 때 나는 그것을 포장하고 때String keyFilePath = "bin/key.txt";
aesEncrypt.setSecretKey(keyFilePath); // passing path to library method
코드는하지만, 원활하게 작동하고 나는 다음과 같은 방법으로 빈 경로를 통과 시도
src
com.org.controller
com.org.beans
key.txt
, 항아리가 작동하지 않습니다.
다음과 같은 방식으로 getResource()
을 사용해 보았지만 너무 효과적이지 않습니다.
URL url = this.getClass().getResource("/key.txt");
File file = new File(url.toURI());
String keyFilePath = file.getAbsolutePath();
aesEncrypt.setSecretKey(new File(keyFilePath).getAbsolutePath()); // passing path to library method
제 질문은 빌드 된 jar에있는 리소스 경로를 어떻게 전달할 수 있습니까?
빈 폴더가 jar 파일에 존재하지 않는다 – XtremeBaumer
일반적으로'loader.getResource ("key.txt")'와 같은 리소스를 가져 오기 위해'ClassLoader' (예 :'Thread.currentThread(). getContextClassLoader()')를 사용해야합니다. 이'getResource' 메쏘드는'URL'을 반환하기 때문에 다음 단계는 여러분의 라이브러리가 그러한 URL을 취하는 메소드를 제공하는지 알아 보는 것입니다. – Seelenvirtuose
'aesEncrypt'의 종류는 무엇입니까? 파일 대신 URL 또는 InputStream을 허용하는 메소드가 있습니까? .jar 파일은 실제로 몇 개의 Java 특정 항목이있는 zip 파일입니다. key.txt는 별도의 파일이 아닌 zip 파일의 항목이므로 java.io.File을 사용하여 읽을 수 없습니다. – VGR