<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 1,  comments - 25,  trackbacks - 0

    獲得運(yùn)行jar包存放路徑的方法

    在 java 中, System.getProperty("user.dir") 得到的是當(dāng)前工作路徑(對(duì)應(yīng)命令行命令就是 linux 下的 pwd 、 windows 下的 cd ),而 System.getProperty("user.home") 得到的是當(dāng)前用戶主目錄(對(duì)應(yīng)于 linux 下的 ~ 目錄、 windows 下的 document and settings\username );但如果你想得到所運(yùn)行的 java 程序所在的路徑,似乎并沒有什么簡單的方法。

      比如說,有一個(gè) pathTest.jar 包放在 D:\zeal\webdev 下,這個(gè) jar 執(zhí)行的時(shí)候需要在當(dāng)前目錄下讀寫一個(gè) test.log 文件。如果不采用絕對(duì)路徑來讀寫 test.log 的話,不同的 jar 運(yùn)行方式會(huì)帶來不同的結(jié)果:

    cd D:\zeal\webdev
    java -jar pathTest.jar

               ( test.log 將生成在 D:\zeal\webdev 目錄下 )

    cd E:\sun\jre\bin
    java -jar D:\zeal\webdev\pathTest.jar

               ( test.lgo 將生成在 E:\sun\jre\bin 目錄下 )

      這勢(shì)必造成潛在的運(yùn)行錯(cuò)誤。解決的方法是必須在程序中指定 test.log 文件的絕對(duì)路徑。從本意上來講,這里我們希望 test.log 與 pathTest.jar 位于相同的路徑之下。但顯然無論是 "user.dir" 還是 "user.home" 都不會(huì)返回正確的結(jié)果。

      幸好, java 允許我們定位某個(gè) class 的 CodeSource , 通過 CodeSource 提供的 Location 信息就能夠找到相關(guān)的文件路徑。假設(shè) pathTest.jar 的 main class 是 pathTest ,通過

    new pathTest().getClass().getProtectionDomain().getCodeSource().getLocation();

      就可以得到 pathTest.jar 的完整路徑( file:/D:/zeal/webdev/pathTest.jar ),接下來怎么做就簡單了。當(dāng)然,實(shí)際應(yīng)用中一般我們會(huì)選擇把所有與jar相關(guān)的資源文件一起打包進(jìn)去,或者使用 "user.home" 這樣的固定位置來存放;除非在特殊情況下才會(huì)需要通過這個(gè)迂回的方式來獲取相關(guān)的路徑信息。

    posted on 2009-12-25 10:09 Daniel 閱讀(1888) 評(píng)論(2)  編輯  收藏 所屬分類: CoreJava

    FeedBack:
    # re: 獲得當(dāng)前運(yùn)行jar包存放路徑的方法
    2011-10-13 13:37 | mlzry
    For JDK 1.6

    new File(ClassLoader.getSystemClassLoader().getResource(".").getPath()).getAbsolutePath()  回復(fù)  更多評(píng)論
      
    # re: 獲得當(dāng)前運(yùn)行jar包存放路徑的方法
    2013-05-27 19:29 | mu
    RunnableJar 下new pathTest().getClass().getProtectionDomain().getCodeSource().getLocation();這種方法就不管用了。  回復(fù)  更多評(píng)論
      
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章分類

    文章檔案

    相冊(cè)

    搜索

    •  

    最新評(píng)論

    主站蜘蛛池模板: 亚洲特级aaaaaa毛片| 亚洲综合网站色欲色欲| 免费无码A片一区二三区| 女人与禽交视频免费看| 国产青草视频在线观看免费影院| 亚洲va中文字幕无码| 亚洲永久永久永久永久永久精品| 国产亚洲精aa在线看| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 久久精品成人免费国产片小草| aa级女人大片喷水视频免费| 亚洲精品国产精品乱码不卡| 亚洲欧洲国产综合| 免费无码又爽又刺激高潮软件| 无码一区二区三区免费视频 | 久久亚洲精品无码gv| 国产一级淫片a免费播放口| 思思99re66在线精品免费观看| 亚洲色偷偷偷综合网| 一区二区三区四区免费视频| 免费a在线观看播放| 亚洲人成www在线播放| 精品久久洲久久久久护士免费| 久久久久亚洲AV无码专区体验 | 四虎影视免费在线| 午夜在线免费视频 | 男人j进女人p免费视频| 久久不见久久见中文字幕免费| 一本色道久久88亚洲精品综合 | 久久久久久一品道精品免费看 | 亚洲国产乱码最新视频| 一本色道久久88亚洲综合 | 亚洲欧洲日本国产| 暖暖免费高清日本一区二区三区| 亚洲日本乱码一区二区在线二产线| 久久精品a一国产成人免费网站 | 精品亚洲视频在线观看 | 99在线观看免费视频| 在线亚洲97se亚洲综合在线| 99re视频精品全部免费| 亚洲av无一区二区三区|