2012-06-18 74 views
0

基本上我剛剛得到了一些結果,並且結果低於預期。我被告知,運行應用程序的圖像時,很感動,並大量異常被拋出:壓縮時應用程序無法正常工作

Exception in thread "main" java.lang.NullPointerException 
at uk.ac.aber.dcs.cs12420.aberpizza.gui.FrontGUI.getName(FrontGUI.java:494) 
at sun.lwawt.macosx.CPlatformWindow.getInitialStyleBits(CPlatformWindow.java:271) 
at sun.lwawt.macosx.CPlatformWindow.initialize(CPlatformWindow.java:228) 

好了,我查了很多倍,運行的JAR文件發送事事休之前的工作。而我現在再次檢查,它仍然如此。唯一不能解決問題的是我不提取內容並嘗試使用壓縮文件夾中的可運行jar文件。

我假設這是問題,因爲圖像不顯示,事情根本無法正常工作。但是,從壓縮文件夾運行jar時,我該如何正確使用圖像?

這是一個不太風趣的問題。我想知道在使用外部圖像時,我的應用程序是否應該或不應該在沒有提取的情況下運行?

只是一個小小的編輯:添加到我的問題:如果可運行jar文件正在直接從zip文件運行,我怎麼能得到圖像的工作。即我如何使圖像文件/文件夾與可運行的jar文件一起移動到臨時位置?

+1

您不應該必須能夠從壓縮文件夾中運行,但是您應該希望優雅地處理錯誤,而不是簡單地拋出NullPointerException。 – Tharwen

+0

我從來沒有想到它可能會在沒有最初提取整個zip文檔的情況下運行,因爲它是從zip文件夾運行的,而且經常會產生錯誤。然而,你是非常正確的,未來我會回想起來並處理這種性質的潛在錯誤。 – DanMc

回答

3

實際上,從一個壓縮文件夾運行一個文件,將文件解壓縮到一個臨時文件夾並從那裏執行它。如果您的應用程序依賴存檔中的某些其他文件,則可能無法解壓縮,從而導致錯誤消失。

+0

如果是這樣,什麼決定哪些文件被提取? –

+0

那麼這就是解壓縮的應用程序,在你的具體情況下,我相信它是你的MacOSX文件管理器/瀏覽器。 – Morfic

+0

標記機實際上。我使用windows:p感謝評論! – DanMc