2012-04-21 2 views
0

Java Webstart에 대한 제한된 이해를 진심으로 기쁘게 생각합니다.이미지를 Java Webstart App에 표시

그래서 나는 (클래스는 JFrame의를 확장) 정적 메서드에서이 코드를 사용하여 내 컴퓨터의 JAR 파일에서 작업 내 응용 프로그램을 가지고 :

으로부터 직접 내 컴퓨터에 응용 프로그램을 실행할 때 그것은 작동
ImageIcon image = new javax.swing.ImageIcon(window.getClass().getResource("/resources/img/loginWindowTop.jpg")); 
//ImageIcon image = new ImageIcon(window.getClass().getResource("/resources/img/loginWindowTop.jpg")); // tried this too 
JLabel imageLabel = new JLabel(image); 
imageLabel.setBounds(rect); 
window.add(imageLabel); 

JAR 파일. JNLP 파일로 웹 서버에서 테스트 할 때 응용 프로그램이 보여주는 충돌이 : 사람이 무엇을 설명 할 수있는 경우

java.lang.NullPointerException 
at javax.swing.ImageIcon.<init>(Unknown Source) 
at gui.LoginWindow.create(LoginWindow.java:42) 
at main.Starter.main(Starter.java:13) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at com.sun.javaws.Launcher.executeApplication(Unknown Source) 
at com.sun.javaws.Launcher.executeMainClass(Unknown Source) 
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) 
at com.sun.javaws.Launcher.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

난 정말 감사하겠습니다. 나는 인터넷에서 꽤 많은 시간을 봤는데 아무런 해결책도 없었다. 나는 정적 JFrame (윈도우의 스 니펫 (snippet)이라고 부름)을 사용하고 있기 때문에 그렇지 않은 것이 좋을까요?

+1

'loginWindowTop.jpg'은 JWS 앱의 런타임 클래스 경로에있는 Jar에없는 것 같습니다. 자스가 포함 된 것은 무엇입니까? JNLP의 내용은 무엇입니까? –

+1

참고로 다음은 작동하는 [예]입니다 (https://sites.google.com/site/drjohnbmatthews/googleolympiad). – trashgod

+0

내 컴퓨터 또는 다른 컴퓨터에서 JAR을 테스트 할 때 작동하므로 항아리에 있어야합니다! 웹 스타트를 사용할 때 경로가 어떻게 든 다를 것이라고 생각합니다. - 예를 들어 주셔서 감사합니다, 나는 그것을 통해 일할 것입니다! – andreas

답변

0

힌트를 보내 주셔서 마침내 방법을 찾았습니다. 내 클래스 LoginWindow은 정적 인 방법에만 사용됩니다, 나는 단지 비 정적 방식으로 작동 할

ImageIcon image = new ImageIcon(LoginWindow.class.getResource("/resources/img/loginWindowTop.jpg")); 

LoginWindow.getClass()를 사용했다.

의견을 보내 주셔서 감사 드리며 다른 사람들에게도 도움이되기를 바랍니다.

1

WinZip 또는 7Zip으로 jar 파일을 열고 경로가 실제로 /resources/img/loginWindowTop.jpg이고 그 파일이 인 경우인지 확인하십시오. (특히 파일 이름은 해당 낙타의 파일 시스템에 있어야합니다.) 약간의 난해한 오류는 클래스 로더에서 발생하므로 window.getClass... 대신 간단하게 getClass...을 시도해 볼 수 있습니다.

+0

JAR의 실제 경로는 "resources/img/loginWindowTop.jpg"입니다. 그러나 이것을 입력 할 때 로컬에서 작동하지 않으므로 처음에는 "/"를 사용했습니다. "gui/LoginWindow.class"폴더의 클래스에서 이미지를 호출합니다. – andreas