當我嘗試加載圖像並將字母從低位更改爲大寫(反之亦然)時,圖像在我使用的IDE(通過JDK 1.7)中完美顯示,但是當我導出可運行在JVM(1.7)上運行的相同代碼的JAR突然間存在區分大小寫問題,其中文件名必須精確。Java中奇怪的區分大小寫問題
下面是示例代碼:
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);
}
更改app_Background.png
到app_background.png
似乎沒有什麼區別,當我在Netbeans的運行它,圖像以同樣的方式顯示出來。
但是,當我通過命令提示符運行代碼或僅運行JAR時,圖像不會顯示,除非文件名正確。
我的問題是爲什麼在IDE內運行時以及在外部運行時發生的大小寫不敏感的行爲?
在同一操作系統上運行兩個? – assylias
這可能是一個問題。您使用的netbeans可能會使用jdk附帶的jre。當它作爲jar文件導出時,您使用的是不同的jre。爲什麼jre/jdk的發佈太多是有原因的。 –
Windows 7上是@assylias –