> Java > java지도 시간 > `getClass().getResource()`를 사용하여 명령줄에서 리소스 파일을 로드하는 방법은 무엇입니까?

`getClass().getResource()`를 사용하여 명령줄에서 리소스 파일을 로드하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-06 17:00:03
원래의
1053명이 탐색했습니다.

How to Load Resource Files from the Command Line Using `getClass().getResource()`?

getClass().getResource()를 사용한 파일 로드

속성 파일과 같은 리소스 파일로 작업할 때 일반적인 접근 방식은 다음을 사용하는 것입니다. getClass().getResource(path)를 사용하여 로드합니다. 그러나 명령줄에서 코드를 실행할 때와 Eclipse 같은 IDE 내에서 코드를 실행할 때 차이가 발생합니다.

Eclipse 내 동작

Eclipse에서 getClass().getResource( path) 메서드는 소스 폴더에서 파일을 효과적으로 로드합니다. 리소스 파일(예: Test.properties)이 Java 파일과 동일한 패키지에 있으면 Eclipse 내에서 문제 없이 액세스할 수 있습니다.

명령줄 배포 문제

명령줄을 사용하여 Eclipse 외부에 애플리케이션을 배포할 때 리소스 파일이 클래스 경로에 없을 수 있습니다. 결과적으로 getClass().getResource(path)는 파일 로드에 실패하여 null 포인터 예외가 발생합니다.

해결책

이 문제를 해결하려면 다음을 확인하세요. 리소스 파일은 클래스 경로에 포함됩니다. 컴파일된 클래스 파일과 동일한 디렉토리에 파일을 배치하거나 JAR 파일로 패키징하면 됩니다.

getClass를 사용하는 대신

대체 접근 방식

().getResource(path), 리소스 파일에 대한 InputStream을 생성하려면 getClass().getResourceAsStream(path) 사용을 고려하세요. 이 방법을 사용하면 URI를 파일로 변환할 필요가 없으며 파일 시스템, JAR 파일 또는 네트워크 등 다양한 소스에서 파일 로드를 처리합니다.마지막으로 전달된 인수에 유의하세요. getClass().getResourceAsStream 메소드. Foo.class.getResourceAsStream("Test.properties")을 사용하면 Foo와 동일한 패키지에서 파일을 로드하는 반면 Foo.class.getResourceAsStream("/com/foo/bar/Test.properties")은 Foo에서 파일을 로드합니다. 지정된 패키지.

위 내용은 `getClass().getResource()`를 사용하여 명령줄에서 리소스 파일을 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿