java的路径研究

来源:互联网 发布:为什么ps软件打不开 编辑:程序博客网 时间:2024/04/29 08:01

转自: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("//.","/")   当前包路径。

0 0