This question already has answers here:
How come this is happening in java? [closed]
                                
                                    (3个答案)
                                
                        
                                5年前关闭。
            
                    
当我尝试加载图像并将字母从小写改为大写或反之亦然时,该图像在我使用的IDE中完美显示(通过JDK 1.7),但是当我导出相同代码的可运行JAR以便在JVM(1.7)突然出现区分大小写的问题,其中文件名必须准确。

这是示例代码:

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(500, 500);

    JLabel im = new JLabel(new ImageIcon("C:\\Users\\Sammy\\Documents\\Aurora\\Onix 2 original\\app_Background.png"));
    frame.add(im);

    frame.setVisible(true);
}


在Netbeans中运行时,将app_Background.png更改为app_background.png似乎没有什么区别,图像以相同的方式显示。

但是,当我通过命令提示符或仅可运行的JAR在JVM中运行代码时,除非文件名正确,否则不会显示图像。

我的问题是,为什么在IDE内部运行和在IDE外部运行时不发生区分大小写的行为?

最佳答案

Java严格区分大小写,而OS(我猜Windows)文件系统则不然。

讨论结束了为什么会这样:

https://netbeans.org/bugzilla/show_bug.cgi?id=198946

10-06 07:26
查看更多