0
我有一個目錄結構,我的個人項目:Ant和jar目錄結構
mines/
build.xml
build/
build/classes/
build/jar/
src/minesweeper
src/minesweeper/view/
src/minesweeper/model/
res/img/
和我build.xml
文件是:
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/minesweeper-clone.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="minesweeper.Minesweeper"/>
</manifest>
</jar>
</target>
<target name="run">
<java jar="build/jar/minesweeper-clone.jar" fork="true"/>
</target>
在Ubuntu中,我做的:
$ant compile jar run
,一切都很好。但如果我這樣做:
$java -jar minesweeper.jar
該程序運行,但圖標不顯示。
在我src/minesweeper/view/GameFrame.java
I類有:
private static final String NEW_GAME_ICON = "res/img/new_game.png";
和new_game.png
是res/img/new_game.png
我知道如果我這樣做:
$java -jar build/jar/minesweeper-clone.jar
它可以完美運行,並且顯示的圖標,但我想只在窗口中執行jar文件(沒有我的項目的整個目錄)。
謝謝。
編輯
我訪問的資源的方法是:
JMenuItem newGameItem1 = new JMenuItem("New game", new ImageIcon(NEW_GAME_ICON));
謝謝。圖標不在罐子裏。我是否需要修改build.xml以添加圖標? – 2012-03-10 00:48:12
@enrmarc ...如果你想擁有一切在罐子裏,那麼當然。 – 2012-03-10 01:05:24
@DaveNewton我已經添加了圖標,但問題仍然存在。 res /文件夾與META-INF /和掃雷/相同。我認爲問題是圖像路徑,但如果我將「res/img/new_game.png」更改爲「../../res/img/new_game.png」,那麼當我執行「ant jar」時,圖標不是顯示。如果我執行'java -jar minesweeper.jar',則會顯示圖標。那麼有沒有辦法用ant和java -jar來執行jar並顯示圖標? – 2012-03-10 01:20:46