String tomcatPath = System.getProperty("user.dir"); out.print("tomcatPath:" +
tomcatPath + " String filepath = ""; if (tomcatPath.contains("//")) { filepath = tomcatPath.replace("//bin", "//webapps//CDNManageSystem//") + "speed.txt"; } else { filepath = tomcatPath.replace("/bin", "/webapps/CDNManageSystem/") + "speed.txt"; } URL url = Path.class.getClassLoader().getResource("/a.properties"); String path = URLDecoder.decode(url.getPath(), "utf-8"); out.print("path:" + path +
" out.print("filepath:" +
filepath + " 如上代碼兩個(gè)linux下結(jié)果: tomcatPath:/home/app_admin/apache-tomcat-6.0.18/logs tomcatPath:/home/liuhy/apache-tomcat-6.0.29/bin windows下的結(jié)果: tomcatPath:C:/Tomcat6.0/bin 總結(jié)下: user.dir獲得的路徑:在哪執(zhí)行的java命令,就是哪??墒堑谝粋€(gè)系統(tǒng)怎么會在logs下???? 下面兩個(gè)在bin目錄下很正常。在logs下,這就有點(diǎn)說不過去了 如果從java類中獲得path還是用getResource比較靠譜 資料二: 1.獲取所有并顯示: Java代碼 Properties p = System.getProperties(); p.list(System.out); p.toString(); 結(jié)果: -- listing properties -- java.runtime.name=Java(TM) SE Runtime Environment sun.boot.library.path=D:\files\Java\jre7\bin java.vm.version=24.60-b09 java.vm.vendor=Oracle Corporation java.vendor.url=http://java.oracle.com/ path.separator=; java.vm.name=Java HotSpot(TM) 64-Bit Server VM file.encoding.pkg=sun.io user.script= user.country=CN sun.java.launcher=SUN_STANDARD sun.os.patch.level=Service Pack 1 java.vm.specification.name=Java Virtual Machine Specification user.dir=E:\workspace\JavaLearn java.runtime.version=1.7.0_60-b19 java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.endorsed.dirs=D:\files\Java\jre7\lib\endorsed os.arch=amd64 java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\ line.separator= java.vm.specification.vendor=Oracle Corporation user.variant= os.name=Windows 7 sun.jnu.encoding=GBK java.library.path=D:\files\Java\jre7\bin;C:\Windows\Sun... java.specification.name=Java Platform API Specification java.class.version=51.0 sun.management.compiler=HotSpot 64-Bit Tiered Compilers os.version=6.1 user.home=C:\Users\Administrator user.timezone= java.awt.printerjob=sun.awt.windows.WPrinterJob file.encoding=UTF-8 java.specification.version=1.7 user.name=Administrator java.class.path=E:\workspace\JavaLearn\bin;E:\workspa... java.vm.specification.version=1.7 sun.arch.data.model=64 java.home=D:\files\Java\jre7 sun.java.command=Test java.specification.vendor=Oracle Corporation user.language=zh awt.toolkit=sun.awt.windows.WToolkit java.vm.info=mixed mode java.version=1.7.0_60 java.ext.dirs=D:\files\Java\jre7\lib\ext;C:\Windows... sun.boot.class.path=D:\files\Java\jre7\lib\resources.jar;... java.vendor=Oracle Corporation file.separator=\ java.vendor.url.bug=http://bugreport./bugreport/ sun.cpu.endian=little sun.io.unicode.encoding=UnicodeLittle sun.desktop=windows sun.cpu.isalist=amd64 備注: java.version Java 運(yùn)行時(shí)環(huán)境版本 java.vendor Java 運(yùn)行時(shí)環(huán)境供應(yīng)商 java.vendor.url Java 供應(yīng)商的 URL java.vm.specification.version Java 虛擬機(jī)規(guī)范版本 java.vm.specification.vendor Java 虛擬機(jī)規(guī)范供應(yīng)商 java.vm.specification.name Java 虛擬機(jī)規(guī)范名稱 java.vm.version Java 虛擬機(jī)實(shí)現(xiàn)版本 java.vm.vendor Java 虛擬機(jī)實(shí)現(xiàn)供應(yīng)商 java.vm.name Java 虛擬機(jī)實(shí)現(xiàn)名稱 java.specification.version Java 運(yùn)行時(shí)環(huán)境規(guī)范版本 java.specification.vendor Java 運(yùn)行時(shí)環(huán)境規(guī)范供應(yīng)商 java.specification.name Java 運(yùn)行時(shí)環(huán)境規(guī)范名稱 os.name 操作系統(tǒng)的名稱 os.arch 操作系統(tǒng)的架構(gòu) os.version 操作系統(tǒng)的版本 file.separator 文件分隔符(在 UNIX 系統(tǒng)中是“/”) path.separator 路徑分隔符(在 UNIX 系統(tǒng)中是“:”) line.separator 行分隔符(在 UNIX 系統(tǒng)中是“/n”) java.home Java 安裝目錄 java.class.version Java 類格式版本號 java.class.path Java 類路徑 java.library.path 加載庫時(shí)搜索的路徑列表 java.io.tmpdir 默認(rèn)的臨時(shí)文件路徑 java.compiler 要使用的 JIT 編譯器的名稱 java.ext.dirs 一個(gè)或多個(gè)擴(kuò)展目錄的路徑 user.name 用戶的賬戶名稱 user.home 用戶的主目錄 user.dir
package org.outman.dms.server; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; public class Test { public static void main(String[] args) throws MalformedURLException,URISyntaxException { System.out.println("java.home :"+System.getProperty("java.home")); System.out.println("java.class.version :"+System.getProperty("java.class.version")); System.out.println("java.class.path: "+System.getProperty("java.class.path")); System.out.println("java.library.path :"+System.getProperty("java.library.path")); System.out.println("java.io.tmpdir :"+System.getProperty("java.io.tmpdir")); System.out.println("java.compiler :"+System.getProperty("java.compiler")); System.out.println("java.ext.dirs :"+System.getProperty("java.ext.dirs")); System.out.println("user.name : "+System.getProperty("user.name")); System.out.println("user.home :"+System.getProperty("user.home")); System.out.println("user.dir :"+System.getProperty("user.dir")); System.out.println("==================="); System.out.println("package:"+Test.class.getPackage().getName()); System.out.println("package:"+Test.class.getPackage().toString()); System.out.println("========================="); String packName =Test.class.getPackage().getName(); URI packuri = newURI(packName); System.out.println(packuri.getPath()); //System.out.println(packuri.toURL().getPath()); System.out.println(packName.replaceAll("//.", "/")); System.out.println(System.getProperty("user.dir")+"/"+(Test.class.getPackage().getName()).replaceAll("//.","/")+"/"); } } (Test.class.getPackage().getName()).replaceAll("//.","/") 當(dāng)前包路徑。 |
|