程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 基於獲得JAVA途徑,包含CLASSPATH外的途徑的辦法詳解

基於獲得JAVA途徑,包含CLASSPATH外的途徑的辦法詳解

編輯:關於JAVA

基於獲得JAVA途徑,包含CLASSPATH外的途徑的辦法詳解。本站提示廣大學習愛好者:(基於獲得JAVA途徑,包含CLASSPATH外的途徑的辦法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是基於獲得JAVA途徑,包含CLASSPATH外的途徑的辦法詳解正文


歸結一些網上取JAVA途徑的辦法:
注明:假如從ANT啟動法式,this.getClass().getResource("")掏出來的比擬怪,直接用JAVA敕令行調試便可勝利。
獲得classpath和以後類的相對途徑的一些辦法
取得CLASSPATH以外途徑的辦法:
URL base = this.getClass().getResource(""); //先取得本類的地點地位,如/home/popeye/testjava/build/classes/net/ String path = new File(base.getFile(), "……/……/……/"+name).getCanonicalPath(); //便可以獲得/home/popeye/testjava/name
上面是一些獲得classpath和以後類的相對途徑的一些辦法。你能夠須要應用個中的一些辦法來獲得你須要的資本的相對途徑。
1.FileTest.class.getResource("")
獲得的是以後類FileTest.class文件的URI目次。不包含本身!
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/
2.FileTest.class.getResource("/")
獲得的是以後的classpath的相對URI途徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
3.Thread.currentThread().getContextClassLoader().getResource("")
獲得的也是以後ClassPath的相對URI途徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
4.FileTest.class.getClassLoader().getResource("")
獲得的也是以後ClassPath的相對URI途徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
5.ClassLoader.getSystemResource("")
獲得的也是以後ClassPath的相對URI途徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
我推舉應用Thread.currentThread().getContextClassLoader().getResource("")來獲得以後的classpath的相對途徑的URI表現法。
在Web運用法式中,我們普通經由過程ServletContext.getRealPath("/")辦法獲得Web運用法式的根目次的相對途徑。如許,我們只須要供給絕對於Web運用法式根目次的途徑,便可以構建出定位資本的相對途徑。
留意點:
1.盡可能不要應用絕對於System.getProperty("user.dir")以後用戶目次的絕對途徑。這是一顆准時炸彈,隨時能夠要你的命。
2.盡可能應用URI情勢的相對途徑資本。它可以很輕易的改變為URI,URL,File對象。
3.盡可能應用絕對classpath的絕對途徑。不要應用相對途徑。應用下面ClassLoaderUtil類的public static URL getExtendResource(String relativePath)辦法曾經可以或許應用絕對於classpath的絕對途徑定位一切地位的資本。
4.相對不要應用硬編碼的相對途徑。由於,我們完整可使用ClassLoader類的getResource("")辦法獲得以後classpath的相對途徑。
應用硬編碼的相對途徑是完整沒有需要的!它必定會讓你逝世的很好看!法式將沒法移植!
假如你必定要指定一個相對途徑,那末應用設置裝備擺設文件,也比硬編碼要好很多!
固然,我照樣推舉你應用法式獲得classpath的相對途徑來拼資本的相對途徑
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved