jar cvf *.jar *.class *.jpg打好jar包后
1. 若要jar包可打開執(zhí)行,則改動jar包內(nèi)MET-INF文件夾下MANIFEST.MF添加一行Main-Class:主類名,即可。
2. 對于加載圖片,見:轉(zhuǎn)載(1)你將所有資源打包為andy.jar,你的類位于一個包中:package andycpp;你的圖片資源全部放在images文件夾中,而images文件夾也位于andycpp包內(nèi)。這樣的話,最終的路徑表現(xiàn)為:
andy.jar
|__andycpp
|__ GUITest.class
|__ images
|__ Snap1.jpg
因為圖片文件夾和引用他的類位于同一個層次,因此可以通過相對路徑來訪問:
java.net.URL imgURL = GUITest.class.getResource("images/Snap1.jpg");
ImageIcon img1 = new ImageIcon(imgURL);
要注意的是,每個類(注意,不是對象)都有一個getResource()方法,但是你不能隨便用,你只能使用和圖片文件夾處于同一層次的類的getResource()方法。GUITest類和images處于同一層次,所以要使用該類的getResource()方法。
(2)另一種情況,如果你的類有很多,并且包結(jié)構(gòu)很復雜,那么你就不大可能把圖片和類放在同一個層次上,而是應該把圖片放到最外層,讓所有的類通過絕對路徑來訪問該圖片:
andy.jar
|__andycpp
|__ GUITest.class
|__ images
|__ Snap1.jpg
代碼如下:
java.net.URL imgURL = GUITest.class.getResource("/images/Snap1.jpg");
ImageIcon img1 = new ImageIcon(imgURL);
區(qū)別是在“images”的前面加了一個反斜杠"/",這個反斜杠就表示根目錄,沒有反斜杠就表示相對路徑。
1. 若要jar包可打開執(zhí)行,則改動jar包內(nèi)MET-INF文件夾下MANIFEST.MF添加一行Main-Class:主類名,即可。
2. 對于加載圖片,見:轉(zhuǎn)載(1)你將所有資源打包為andy.jar,你的類位于一個包中:package andycpp;你的圖片資源全部放在images文件夾中,而images文件夾也位于andycpp包內(nèi)。這樣的話,最終的路徑表現(xiàn)為:
andy.jar
|__andycpp
|__ GUITest.class
|__ images
|__ Snap1.jpg
因為圖片文件夾和引用他的類位于同一個層次,因此可以通過相對路徑來訪問:
java.net.URL imgURL = GUITest.class.getResource("images/Snap1.jpg");
ImageIcon img1 = new ImageIcon(imgURL);
要注意的是,每個類(注意,不是對象)都有一個getResource()方法,但是你不能隨便用,你只能使用和圖片文件夾處于同一層次的類的getResource()方法。GUITest類和images處于同一層次,所以要使用該類的getResource()方法。
(2)另一種情況,如果你的類有很多,并且包結(jié)構(gòu)很復雜,那么你就不大可能把圖片和類放在同一個層次上,而是應該把圖片放到最外層,讓所有的類通過絕對路徑來訪問該圖片:
andy.jar
|__andycpp
|__ GUITest.class
|__ images
|__ Snap1.jpg
代碼如下:
java.net.URL imgURL = GUITest.class.getResource("/images/Snap1.jpg");
ImageIcon img1 = new ImageIcon(imgURL);
區(qū)別是在“images”的前面加了一個反斜杠"/",這個反斜杠就表示根目錄,沒有反斜杠就表示相對路徑。

