2013-07-08 8 views
1

내 프로젝트에서는 시스템 트레이를 사용합니다. 프로그램을 컴파일하면 모든 것이 잘 작동하고 시스템 트레이에 사용하는 아이콘이 나타납니다.runnable jar을 만들 때 이미지를 내보낼 수 없습니다.

아이콘은 프로젝트 폴더에 저장되어있는 아이콘에 관련된 코드는 내가 말했듯이

Image icon = Toolkit.getDefaultToolkit().getImage("Icon.png"); 

trayIcon = new TrayIcon(icon, "Program name", popup); 
trayIcon.setImageAutoSize(true); 

tray.add(trayIcon); 

이 모든 작품 찾으십시오하지만 실행 가능한 단지로 프로젝트를 내보낼 때 프로그램은 실행되지만한다 아이콘이 나타나지 않지만 비어있게됩니다.

+0

파일 목록에 포함했는지 확인한 다음 클래스의 리소스 로더를 사용하여 이미지를로드하십시오. –

+0

이 상황에 대해이 [answer] (http://stackoverflow.com/a/9866659/1057230)이 사용되기를 바랍니다. –

답변

5

병의 이미지에 액세스하려면 Class.getResource()을 사용하십시오. 당신이 당신의 .jar 파일을 사용 getClass().getResource()에서 리소스를로드하려는 경우

InputStream stream = MyClass.class.getResourceAsStream("Icon.png"); 
if(stream == null) { 
    throw new RuntimeException("Icon.png not found."); 
} 

try { 
    return ImageIO.read(stream); 
} catch (IOException e) { 
    throw new RuntimeException(e); 
} finally { 
    try { 
     stream.close(); 
    } catch(IOException e) { } 
} 
6

:

나는 일반적으로 이런 일을한다. 올바른 경로의 URL을 반환합니다.

Image icon = ImageIO.read(getClass().getResource("image´s path"));