>  기사  >  Java  >  Java에서 JAR 파일의 리소스에 액세스하는 방법은 무엇입니까?

Java에서 JAR 파일의 리소스에 액세스하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-06 16:36:02536검색

How to Access Resources from JAR Files in Java?

JAR 파일에서 리소스 로드

애플리케이션에서 WinProcessor.class.getResource("repository")를 사용하여 리소스를 로드합니다. toString()은 IDE에서 실행할 때 파일 경로를 제공하지만 JAR 파일로 실행할 때는 JAR URL을 반환합니다. 이러한 불일치는 JAR 파일에 압축 및 패키지 형식의 리소스가 포함되어 있기 때문에 발생합니다.

JAR의 리소스 로드 이해

애플리케이션을 JAR 파일로 패키지하면 해당 내용이 리소스를 포함한 은 아카이브 내에 저장됩니다. JAR 파일 내에서 리소스에 액세스하려고 하면 JVM은 이를 파일 시스템의 파일과 다르게 처리합니다. getResource 메소드는 JAR 내의 리소스 위치를 가리키는 URL을 반환합니다.

해결책: getResourceAsStream 사용

이 문제를 해결하려면 대신 getResourceAsStream을 사용하는 것이 좋습니다. getResource.getResource.getResource.getResource.getResource.getResource.getResource를 가져옵니다. getResourceAsStream은 JAR 파일에서 직접 리소스 내용을 읽을 수 있도록 하는 InputStream을 반환합니다. 그런 다음 InputStream을 사용하여 ConfigurationContext와 같은 필수 개체를 생성하거나 시스템 속성을 설정할 수 있습니다.

다음은 getResourceAsStream을 사용하여 업데이트된 예입니다.

InputStream repositoryInputStream = WinProcessor.class.getResourceAsStream("repository");
ConfigurationContext ctx = (ConfigurationContext) ConfigurationContextFactory.createConfigurationContextFromFileSystem(repositoryInputStream, null);

InputStream fileNameInputStream = WinProcessor.class.getResourceAsStream("file_name");
System.setProperty("javax.net.ssl.trustStore", fileNameString);

getResourceAsStream을 사용하면 다음과 같은 문제를 피할 수 있습니다. IDE에서 실행하는 것과 JAR 파일로 실행하는 것 사이의 경로 차이 문제. InputStream은 JAR 내의 리소스 위치를 올바르게 가리키므로 해당 콘텐츠에 액세스할 수 있습니다.

위 내용은 Java에서 JAR 파일의 리소스에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.