将Java项目导出到Jar的问题

时间:2013-09-28 12:52:05

标签: java eclipse slick2d

所以我一直在使用Slick2D制作一种LoZ衍生游戏,以便更好地使用Java,我想我现在想出如何导出它以便我可以在不同的机器上测试它。

我现在遇到的问题是,一旦我导出了整个项目,一旦双击创建的项目就没有任何反应。我的意思是屏幕尺寸,位置和一切都是正确的,但不是任何图形显示,它只是一个白色的屏幕。我在这里尝试过一些答案,例如使用Fat-Jar Exporter,但它们没有用。

可能是因为我没有使用正确的设置等吗?我用来将我的图片导入我的Tile类的代码是:

public static BufferedImage background, terrain, items, characters;

public Tile()
{
    try {
        /*Tile.background = ImageIO.read(getClass().getResource("res/bg.png"));*/
        Tile.background = ImageIO.read(Tile.class.getResourceAsStream("/bg.png"));
        //Tile.terrain = ImageIO.read(new File("res/terrain.png"));
        Tile.characters = ImageIO.read(Tile.class.getResourceAsStream("/characters.png"));
        //Tile.items = ImageIO.read(new File("res/items.png"));
    } catch (IOException e) {
        System.out.println("Error Loading Images");
    }
}

代码中注释掉的位是我之前尝试过的东西,不包括Tile.terrain和Tile.background。我有一个res文件夹,我已将其作为构建路径上的源文件夹包含在项目的属性中。该res文件夹有几个子文件夹(World,GUI和Sound)以及其中的一些文件(bg.png,characters.png)。以下是res文件夹在Windows资源管理器中作为文件路径的显示方式: C:\ WORKAREA \的Java2D \ RES

有没有人知道该怎么做?

更新#1

所以在按照你的建议JB Nizet之后,运行jar后我的命令提示符出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/newdawn/slick/SlickException
    at org.rc.Core.start(Core.java:89)
    at org.rc.Core.main(Core.java:81)
Cause by: java.lang.ClassNotFoundException: org.newdawn.slick.SlickException
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPriveliged(Native Method)
    at java.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadCLass(Unknown Source)
    at java.lang.ClassLoader.loadClass(unknown Source)
    ... 2 more

更新#2

所以我已经想出如何将Slick和what-not打包在一起(我使用JarSplice将它们拼凑在一起),现在我收到了与资源相关的错误:

Exception in thread "main" java.lang.RuntimeException: Resource not found: res/World/Level_1.tmx
    at org.newdawn.slick.util.ResourceLoader.getResourcAsStream(ResourceLoader.java:69)
    at org.newdawn.slick.tiled.TiledMap.<init>(TiledMap.java:106)
    at org.rc.Level<init>(Level.java:32)
    at org.rc.Core.start(Core.java:89)
    at org.rc.Core.main(Core.java:81)

这告诉我,我没有正确引入我的资源,即使在Eclipse的项目查看器中,我的res文件夹是构建路径上的源文件夹。

有谁知道该怎么做?

我的回答

所以我决定在项目工作之后将项目带到NetBeans amnd。对于有我描述的问题的任何人,请尝试。

我的帮助。 ^^

0 个答案:

没有答案