java的路径研究
2016-05-07 16:28
513 查看
转自:http://blog.sina.com.cn/s/blog_6a82eb900102uwhu.html
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 + "
");
如上代码两个linux下结果:
tomcatPath:/home/app_admin/apache-tomcat-6.0.18/logs
path:/home/app_admin/apache-tomcat-6.0.18/webapps/pathtest/WEB-INF/classes/a.properties
filepath:/home/app_admin/apache-tomcat-6.0.18/logsspeed.txt
tomcatPath:/home/liuhy/apache-tomcat-6.0.29/bin
path:/home/liuhy/apache-tomcat-6.0.29/webapps/pathtest/WEB-INF/classes/a.properties
filepath:/home/liuhy/apache-tomcat-6.0.29/webapps/CDNManageSystem/speed.txt
windows下的结果:
tomcatPath:C:/Tomcat6.0/bin
path:/C:/Tomcat6.0/webapps/pathtest/WEB-INF/classes/a.properties
filepath:C:/Tomcat6.0/webapps/CDNManageSystem/speed.txt
总结下:
user.dir获得的路径:在哪执行的java命令,就是哪。可是第一个系统怎么会在logs下????
下面两个在bin目录下很正常。在logs下,这就有点说不过去了
如果从java类中获得path还是用getResource比较靠谱
资料二:
1.获取所有并显示:
Java代码
Properties p = System.getProperties();
p.list(System.out);
p.toString();
结果:
-- 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.sun.com/bugreport/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=amd64
备注:
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
java.home Java 安装目录
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
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("//.","/") 当前包路径。
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 + "
");
如上代码两个linux下结果:
tomcatPath:/home/app_admin/apache-tomcat-6.0.18/logs
path:/home/app_admin/apache-tomcat-6.0.18/webapps/pathtest/WEB-INF/classes/a.properties
filepath:/home/app_admin/apache-tomcat-6.0.18/logsspeed.txt
tomcatPath:/home/liuhy/apache-tomcat-6.0.29/bin
path:/home/liuhy/apache-tomcat-6.0.29/webapps/pathtest/WEB-INF/classes/a.properties
filepath:/home/liuhy/apache-tomcat-6.0.29/webapps/CDNManageSystem/speed.txt
windows下的结果:
tomcatPath:C:/Tomcat6.0/bin
path:/C:/Tomcat6.0/webapps/pathtest/WEB-INF/classes/a.properties
filepath:C:/Tomcat6.0/webapps/CDNManageSystem/speed.txt
总结下:
user.dir获得的路径:在哪执行的java命令,就是哪。可是第一个系统怎么会在logs下????
下面两个在bin目录下很正常。在logs下,这就有点说不过去了
如果从java类中获得path还是用getResource比较靠谱
资料二:
1.获取所有并显示:
Java代码
Properties p = System.getProperties();
p.list(System.out);
p.toString();
结果:
-- 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.sun.com/bugreport/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=amd64
备注:
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
java.home Java 安装目录
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
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("//.","/") 当前包路径。
相关文章推荐
- Struts2中的struts.i18n.encoding的较量
- Java简单实例--小超市
- 1.1 JavaEE应用概述
- Java实现归并排序
- java类加载方式
- Java IO流和装饰模式(Decorator)
- java浅拷贝与深拷贝详解
- struts.custom.i18n.resources
- JAVA中将一个时间段按固定间隔拆分为List
- Elasticsearch 常用的java操作
- java 泛型
- Spring 4 MVC 表单校验资源处理(带源码)
- Java之------类加载器(二)
- 转自:Java通过SMS短信平台实现发短信功能
- maven项目 加入json-lib-2.2.3-jdk15.jar 报错 Missing artifact net.sf.json-lib:json-lib:jar:2.4:compile
- Java线程
- Java基于Socket的简单推送
- java单例模式详解
- java代码获取各种时间
- Google Java 编程风格指南 —— 见微知著