java 获取文件版本号_Java 获取资源文件路径
生活随笔
收集整理的這篇文章主要介紹了
java 获取文件版本号_Java 获取资源文件路径
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 問題描述
通過源碼運行時,一般使用如下方式讀取資源文件:
String str = "1.jpg";資源文件與源碼文件放在同一目錄下,或者擁有同一父級目錄:
String str = "a/b/1.jpg";這樣直接編譯運行沒有問題,但是打成JAR包后會讀取不了,直接拋空指針異常。
2 解決辦法
使用URL或者InputStream進行讀取:
URL url = getClass().getClassLoader().getResource("a/b/1.jpg"); InputStream inputStream = getClass().getClassLoader().getResourceAsStream("a/b/1.png");注意不能在路徑前加/:
URL url = getClass().getClassLoader().getResource("/a/b/1.jpg"); InputStream inputStream = getClass().getClassLoader().getResourceAsStream("/a/b/1.png");這樣讀取出來是null。 getClass().getClassLoader().getResource()從源碼運行的URL如下:
從JAR包運行的URL如下:
測試系統(tǒng)Win10,從源碼運行的話有一個file:前綴,而從JAR包運行有一個jar:file:前綴。 前綴一般沒有影響,一般都能直接通過URL獲取文件,比如在Swing的JFrame中設置圖標:
mainFrame.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("image/icon.png")).getImage());如果只能通過String處理路徑,需要把前綴file:或者jar:file:去掉,JAR的話可以結合JarFile類讀取文件。
總結
以上是生活随笔為你收集整理的java 获取文件版本号_Java 获取资源文件路径的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: window安装mysql默认密码忘记_
- 下一篇: reportviewer控件mysql_