2016-05-27 75 views
1

即時通訊相當新的Java和即時通訊做一個pokemon風格的遊戲練習,我想能夠發送遊戲給我的朋友。如何導出與非jar依賴關係的工作罐

這裏是主要問題:遊戲在我的NetBeans IDE中正常工作,但在我的dist文件夾中使用jar文件不起作用並拋出nullPointerException。我已經縮小了這個問題。我的遊戲使用了我在圖書館導入的imageIcons和png/gif圖像。即時得到訪問他們這樣

Icon bckground = new javax.swing.ImageIcon(getClass().getResource("/pictures/BG.gif")); 

我不確定如何獲取圖像到lib文件夾,程序才能找到。我曾嘗試將文件直接複製到lib文件夾併爲它們創建一個名爲圖片的文件夾;既沒有工作。現在lib文件夾只包含來自其他庫中的一個jar文件。 (這是我進口我的圖書館唯一的jar文件)

Pic of what it looks like in IDE

回答

1

在我的情況,我做了這樣的事情。

final BufferedImage image = ImageIO.read(new File("something.jpg")); 

我只是將東西轉移到dist文件夾,它工作正常。

清理完成項目後,將BG.gif放入dist文件夾,然後在dist文件夾中運行jar文件。現在一切都應該沒問題。當你的遊戲發送給你的朋友時,你可以封裝(隱藏,設置只讀)你的代碼(google encapsultaion java),然後將BG.gif傳輸到dist文件夾中,存檔項目。然後你的朋友只需要解壓縮它並在dist文件夾中找到jar文件。

希望這將有助於:)

+0

請讓我知道,如果它工作或不) –

+0

謝謝,我最終做的是使用ImageIcon構造與單個字符串參數文件名。然後將圖片放入dist文件夾中。 – joey101937

+0

@ joey101937我很高興它可以工作。你可以請按下↑按鈕嗎?)這對我來說意味着很多) –

1

請把你的包(目錄),圖片(BG.gif)它被用作圖標Icon bckground = new javax.swing.ImageIcon(getClass().getResource("BG.gif"));的jar文件中。您需要首先更改文件的路徑getResource("BG.gif"),然後從IDE創建jar文件。如果jar不包含圖像,可以使用任何解壓縮應用程序(winrar等)打開jar,並將該圖像文件複製並粘貼到類所在的目錄中。請讓我知道結果。