Java 程序无法作为 .jar 文件打开,但在导出前在 Intellij 中运行良好

Java program won't open as a .jar file, yet works just fine in Intellij before exported

Java 程序不会作为 .jar 文件打开,但在导出为 jar 文件之前在 IntelliJ 中运行良好。 运行cmd中的jar报错

exception in thread main java.lang.nullpointerexception: 
Cannot invoke "java.net.URL.openstream() because the return value of
"java.lang.Class.getResource(String)" is null

,作为编程新手,这对我来说意义不大。

打开 jar 文件显示程序试图访问的资源确实存在于 jar 文件中,并且如前所述,它在 IDE 中运行良好。我不完全确定人们是否需要查看我的实际代码才能解决此问题,所以如果您想查看任何内容,请告诉我,我会 post 它。

link 到错误信息

这是上图中cmd指出的代码部分。 “FontMainText”是第 103 行。

    public GUI(Game game) throws IOException, UnsupportedAudioFileException {
    this.game = game;

    //Fonts
    try{
        fontMainText = Font.createFont(Font.TRUETYPE_FONT, getClass().getResource("KnightsQuest.TTF").openStream()).deriveFont(26f);
        fontTitle = Font.createFont(Font.TRUETYPE_FONT, getClass().getResource("KnightsQuest.TTF").openStream()).deriveFont(120f);
        fontStats = Font.createFont(Font.TRUETYPE_FONT, getClass().getResource("KnightsQuest.TTF").openStream()).deriveFont(26f);
        fontHealth = Font.createFont(Font.TRUETYPE_FONT, getClass().getResource("KnightsQuest.TTF").openStream()).deriveFont(42f);
        fontOptions = Font.createFont(Font.TRUETYPE_FONT, getClass().getResource("KnightsQuest.TTF").openStream()).deriveFont(30f);
        fontStart = Font.createFont(Font.TRUETYPE_FONT, getClass().getResource("KnightsQuest.TTF").openStream()).deriveFont(40f);

        GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
        graphicsEnvironment.registerFont(fontMainText);
    }
    catch(IOException | FontFormatException e){
    }

}

任何帮助将不胜感激,谢谢!

这是 IDE 中的项目结构: 项目结构

这是 .jar 文件在 7-zip 中打开时的样子:

所以答案最终变得非常简单。在我的 IDE 中,我将字体的文件类型列为“.TTF”并且 IDE 能够读取它。但是,对于.jar文件,它需要是小写的“.ttf”,否则将无法使用。