我遵循了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