.jar文件在没有资源文件夹的情况下无法运行

时间:2019-12-16 00:17:56

标签: java eclipse jar buildpath

我遵循了YouTube上有关如何用Java构建游戏的教程。我稍稍更改了代码,但保留了所有基础知识。当我将带有eclipse的游戏导出为可运行的jar时,仅当resources文件夹与jar处于同一目录时,该游戏才能工作。否则,即使资源文件夹位于构建路径和jar中,我也只会得到一个空白屏幕。

您可以在此处查看完整的代码:https://github.com/CodeNMore/New-Beginner-Java-Game-Programming-Src/tree/master/Episode%2034/TileGame

但是我认为最重要的部分是这些:

public class FontLoader {

public static Font loadFont(String path, float size){
    try {
        return Font.createFont(Font.TRUETYPE_FONT, new File(path)).deriveFont(Font.PLAIN, size);
    } catch (FontFormatException | IOException e) {
        e.printStackTrace();
        System.exit(1);
    }
    return null;
}
}

public class Utils {

public static String loadFileAsString(String path){
    StringBuilder builder = new StringBuilder();

    try{
        BufferedReader br = new BufferedReader(new FileReader(path));
        String line;
        while((line = br.readLine()) != null)
            builder.append(line + "\n");

        br.close();
    }catch(IOException e){
        e.printStackTrace();
    }

    return builder.toString();
}

public static int parseInt(String number){
    try{
        return Integer.parseInt(number);
    }catch(NumberFormatException e){
        e.printStackTrace();
        return 0;
    }
    }

}

public class ImageLoader {

public static BufferedImage loadImage(String path){
    try {
        return ImageIO.read(ImageLoader.class.getResource(path));
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }
    return null;
}

}

我没有在我的版本中更改它们。

我的下一个猜测是清单文件是问题,但老实说,我不知道如何更改它才能使jar正常运行。 自动创建的文件仅包含以下内容:

Manifest-Version: 1.0
Class-Path: .
Main-Class: main.Launcher

0 个答案:

没有答案