posts - 1,  comments - 25,  trackbacks - 0
          這兩天又做了個Execute Jar Project.

          覺得以前的Path的知識都忘的差不多了,決定自己總結一下。

          1. 獲取類路徑

              返回類路徑內容,一般為:lib1.jar;lib2.jar。

          1System.getProperty("java.class.path");
               在命令行運行Java程序時,上面的代碼將會返回"-cp"參數內容,例如,執行下面的命令返回".;test.jar":
          1java -cp .;test.jar Test


          2. Jar文件中路徑操作

          2.1 獲取當前代碼所在Jar包的絕對路徑

          1File f = new File(Test.class.getProtectionDomain().getCodeSource().getLocation().getPath());
          2//Jar包絕對路徑
          3System.out.println(f.getAbsolutePath());
          4//Jar包所在目錄
          5System.out.println(f.getParent());

               需要注意的是,如果在java命令后添加如下參數啟動安全管理器,并且安全策略文件中沒有getProtectionDomain權限,則上述代碼會拋出SecurityException 異常。

          1java -Djava.security.manager  -Djava.security.policy=="安全策略文件絕對路徑"


          2.2 讀取當前代碼所在Jar包中的資源文件

          1)相對路徑訪問

              

          1public class Test {
          2    public static void main(String[] args) throws Exception {
          3        InputStream is1 = Test.class.getResourceAsStream("test.txt");
          4        InputStream is2 = Test.class.getResource("test.txt").openStream();
          5    }
          6}

              如果待讀取資源文件在當前類的package下,則可以使用相對路徑定位資源文件。上面的例子中,test.txt文件和Test類同處在test package下面,相對路徑為test.txt。

          2) 絕對路徑訪問

              

          1public class Test {
          2    public static void main(String[] args) throws Exception {
          3        InputStream is1 = Test.class.getResourceAsStream("/resource/test.txt");
          4        InputStream is2 = Test.class.getResource("/resource/test.txt").openStream();
          5    }
          6}
                如果待讀取資源文件和當前類不在同一個package下,則可以使用絕對路徑定位資源文件。上面的例子中,test.txt資源文件處在resource package下面,絕對路徑為/resource/test.txt。

              切記: /開頭是從根下找, 沒有/開頭是相對路徑

          2.3 讀取當其它Jar包中的資源文件

          1InputStream is = new URL("jar:file:/C:/test.jar!/test/test.txt").openStream();

          posted on 2013-04-05 13:38 Daniel 閱讀(409) 評論(1)  編輯  收藏 所屬分類: CoreJava

          FeedBack:
          # re: Java Path[未登錄]
          2016-03-31 09:30 | coder
          Very helpful, 3ks a lot  回復  更多評論
            
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 白玉县| 沙坪坝区| 澄迈县| 岳普湖县| 沙田区| 银川市| 全南县| 阳春市| 云安县| 策勒县| 鞍山市| 南丰县| 庆云县| 沅江市| 济宁市| 宜都市| 芦溪县| 漠河县| 宁蒗| 丰原市| 赫章县| 诏安县| 杭州市| 财经| 江口县| 承德县| 三门峡市| 吉首市| 信阳市| 沽源县| 会东县| 东乡| 通化县| 马关县| 营口市| 牡丹江市| 漯河市| 宜宾市| 炉霍县| 富顺县| 黔江区|