Linux java use.dir_System.getProperty(“user.dir”)不同的系统下,路径不同,关于路径的研究...

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 RuntimeEnvironment

sun.boot.library.path=D:\files\Java\jre7\bin

java.vm.version=24.60-b09

java.vm.vendor=OracleCorporation

java.vendor.url=http://java.oracle.com/

path.separator=;

java.vm.name=Java HotSpot(TM) 64-BitServer VM

file.encoding.pkg=sun.io

user.script=

user.country=CN

sun.java.launcher=SUN_STANDARD

sun.os.patch.level=Service Pack1

java.vm.specification.name=Java VirtualMachine 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=OracleCorporation

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 PlatformAPI Specification

java.class.version=51.0

sun.management.compiler=HotSpot 64-BitTiered 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=OracleCorporation

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=OracleCorporation

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 {

publicstatic void main(String[] args) throwsMalformedURLException,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("=========================");

StringpackName =Test.class.getPackage().getName();

URIpackuri = 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值