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