2010-06-21 49 views
1

我想分發一個netbeans項目,但它創建的jar和dist文件夾的內容依賴於我包含到項目中的一些圖像文件 - 但是這些圖像是不在dist文件夾中,我無法制定如何使事情發揮作用,因此我可以將項目導出爲可分發格式,包括所需的所有內容。Netbeans創建與所有圖像等dist jar包括

有人可以告訴我如何導出在Netbeans中運行的項目,而無需使用項目的/ dist文件夾,其中包含所需的所有內容?

乾杯

安迪實現這一

回答

1

一種方法是在你的項目的src目錄添加文件夾(f.i.「資源」)。然後將圖像複製到該目錄。現在,當您構建項目時(如果我沒有記錯的話),圖像應該包含在內。訪問這些文件可以用「getResourceAsStream」來完成......

+0

好了,所以想這一點,從NetBeans中運行時,該代碼工作正常:在 [代碼] URL imgOn = cldr.getResource(「資源\\。 PNG「); URL imgOff = cldr.getResource(「resources \\ off.png」); ImageIcon on; ImageIcon關閉; 公共無效的run(){ 的System.out.println( 「URL:」 + imgOn); on = new ImageIcon(imgOn); off = new ImageIcon(imgOff); ... [/ code] 當從dist中的jar運行時,這將返回URL:null ..... – RenegadeAndy 2010-06-22 13:03:00

+0

嘗試解壓縮jar並檢查資源文件infact是否已包含在jar中。 – 2010-11-30 19:28:23

1

如果你感興趣的任何資源都在classpath中,打包在jar,war或distribution中,你可以通過獲取資源來獲取它們。

約定確實有一個名爲'src/resources'的目錄作爲此目錄的根目錄。根據您使用的資源的數量和範圍,您可能還需要添加子目錄層次結構以保持組織和資源狀態的可管理性。另外,不是說資源可以是任何文件,圖像,聲音,文本,xml,二進制文件等,沒有限制。

最後,調用看起來像這樣如果你使用一個對象的方法: 的getClass()的getResourceAsStream( 「資源/ myResource」) - 或 - 的getClass()的getResource( 「資源/ myResource」) 依賴。如果你想要一個流或只是在代碼中的那個點的URI。通常,當您在線處理資源時,可以使用URI來委託其他地方的資源處理以及流表單。

對於一個類的方法,你需要做更多的東西一樣。

新的對象()的getClass()...

的認爲要記住這裏是最終這是解決到類加載器,並從該類路徑獲取資源。

0

您可以將圖片以同樣的方式:

final Image image0 = Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/1.png"));