您的位置:首页 > 编程语言 > Java开发

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("//.","/") 当前包路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: