当我尝试加载图像并将字母从大写字母更改为大写字母时,反之亦然,图像在我使用的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
似乎没有任何区别,图像以相同的方式显示。
但是,当我通过命令提示符从JVM运行代码或只运行可运行的JAR时,除非文件名正确,否则图像不会显示。
我的问题是为什么在IDE内部运行时以及在一个IDE外部运行时,是否发生了相同的区分大小写行为?
答案 0 :(得分:4)
Java严格区分大小写,而操作系统(我猜Windows
)文件系统很多都没有。
这个讨论可以解释为什么会发生这种情况: