This question already has answers here:
How come this is happening in java? [closed]
(3个答案)
5年前关闭。
当我尝试加载图像并将字母从小写改为大写或反之亦然时,该图像在我使用的IDE中完美显示(通过JDK 1.7),但是当我导出相同代码的可运行JAR以便在JVM(1.7)突然出现区分大小写的问题,其中文件名必须准确。
这是示例代码:
在Netbeans中运行时,将
但是,当我通过命令提示符或仅可运行的JAR在JVM中运行代码时,除非文件名正确,否则不会显示图像。
我的问题是,为什么在IDE内部运行和在IDE外部运行时不发生区分大小写的行为?
(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