2013-02-24 4 views
0

Java에서 전체 파일 위치를 사용하지 않고 파일에서 이미지를 가져올 수 있습니까? 아래 내 코드는 전체 파일 경로와 함께 작동합니다 :Java - 파일 경로에서 이미지 가져 오기

Icon icon = new ImageIcon("/Users/MyMac/Documents/Project/Software/Project/src/UI/Images/default_pic.png"); 

이 가능

Icon icon = new ImageIcon("/src/UI/Images/default_pic.png"); 
+2

첫 번째'/'를 제거해보십시오. – Dukeling

+0

'CLASSPATH'를 적절하게 설정해야합니다. –

+1

다른 사용자와 마찬가지로 부정적인 의미로 유용한 의견을 보내 주셔서 감사합니다. – user1851487

답변

2

"/src/UI/Images/default_pic.png"? : 같은 파일 경로를 사용할 수 있나요 절대 경로이므로 루트 디렉토리에있는 src 디렉토리 을 찾은 다음 그 디렉토리의 UI 하위 디렉토리 등을 찾습니다. 원하는 것은 아닙니다.

"src/UI/Images/default_pic.png"와 같은 상대 경로를 사용할 수 있지만 ("/"로 시작하지 않음을 알 수 있음) 이름에서 알 수 있듯이 현재 디렉토리와 관련이 있습니다 . 따라서 현재 디렉토리가/Users/MyMac/Documents/Project/Software/Project (또는 동일한 하위 경로에있는 파일을 포함하는 디렉토리) 인 경우 작동합니다. 그렇지 않으면 그렇지 않습니다.

마지막으로 다른 방법은 클래스 경로를 통해 파일에 액세스하는 것입니다. 프로젝트가 jar 파일로 압축 될 수 있다고 가정하면, 이미지 파일은 디스크의 개별 파일이 아닐 수도 있지만 여전히 액세스 할 수있는 URL 또는 InputStream을 얻을 수 있습니다. Class 및 ClassLoader에서 getResource 및 getResourceAsStream을 검색하십시오.

관련 문제