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