关于System.getProperty("java.io.tmpdir");的输出,及System.getProperty();参数(转自扑球小猫)

1,首先来介绍下System.getProperty("java.io.tmpdir")输出因为这个输出有点特殊。

  理论介绍:他是获取系统临时目录。可以是window的temp,linux的临时目录等。

  实际:实际上他获取的有时候并不是我们想要获取的。比如一个web程序:如果你不用tomcat,直接一个java类main方法,然后直接输出System.getProperty("java.io.tmpdir")那么结果是你当前系统下的临时文件目录如                                            win7:C:\Users\用户名\AppData\Local\Temp。但如果你把web程序放入tomcat下然后再输出System.getProperty("java.io.tmpdir"),那么这是结果是:D:\apache-tomcat-7.0.47\temp。为什么呢?

      这个问题其实我也还没找到答案,但是我在这里把我找到的一些解释汇总一下:

    1楼:

      和调用有关吧
      在d:\时,是在Win下执行,返回的是Win的临时目录
      在项目中,是Tomcat执行,返回是Tomcat自己设置的临时目录

       2楼:

      临时目录,那就哪方便建哪里了。呵呵,所以不同的环境是不一样的。
      你在linux下面运行,又会是另一个路径了!

     3楼:

      它是根据不同的环境来建立的是吧

     4楼:

         嗯,一楼说的有道理的,是与坏境有关的,甚至有的工具会让你自己选择临时文件放在哪的,不知道你的那个工具能不能设置的‘

       5楼:

      因为 Tomcat 在启动时,在 %TOMCAT_HOME%/bin/catalina.bat 中采用
      -Djava.io.tmpdir 参数重新指定了路径,有需要的话可以自行更改,或者
      删掉再试试看。

    这就是我找的一些资料,实在太少。

    

2:System.getProperty();参数列表

     


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号

     System.out.println("Java提供商名称:" + System.getProperty("java.vendor")); // Java提供商名称

     System.out.println("Java提供商网站:" + System.getProperty("java.vendor.url")); // Java提供商网站

     System.out.println("jre目录:" + System.getProperty("java.home")); // Java,哦,应该是jre目录

     System.out.println("Java虚拟机规范版本号:" + System.getProperty("java.vm.specification.version")); // Java虚拟机规范版本号

     System.out.println("Java虚拟机规范提供商:" + System.getProperty("java.vm.specification.vendor")); // Java虚拟机规范提供商

     System.out.println("Java虚拟机规范名称:" + System.getProperty("java.vm.specification.name")); // Java虚拟机规范名称

     System.out.println("Java虚拟机版本号:" + System.getProperty("java.vm.version")); // Java虚拟机版本号

     System.out.println("Java虚拟机提供商:" + System.getProperty("java.vm.vendor")); // Java虚拟机提供商

     System.out.println("Java虚拟机名称:" + System.getProperty("java.vm.name")); // Java虚拟机名称

     System.out.println("Java规范版本号:" + System.getProperty("java.specification.version")); // Java规范版本号

     System.out.println("Java规范提供商:" + System.getProperty("java.specification.vendor")); // Java规范提供商

     System.out.println("Java规范名称:" + System.getProperty("java.specification.name")); // Java规范名称

     System.out.println("Java类版本号:" + System.getProperty("java.class.version")); // Java类版本号

     System.out.println("Java类路径:" + System.getProperty("java.class.path")); // Java类路径

     System.out.println("Java lib路径:" + System.getProperty("java.library.path")); // Java lib路径

     System.out.println("Java输入输出临时路径:" + System.getProperty("java.io.tmpdir")); // Java输入输出临时路径

     System.out.println("Java编译器:" + System.getProperty("java.compiler")); // Java编译器

     System.out.println("Java执行路径:" + System.getProperty("java.ext.dirs")); // Java执行路径

     System.out.println("操作系统名称:" + System.getProperty("os.name")); // 操作系统名称

     System.out.println("操作系统的架构:" + System.getProperty("os.arch")); // 操作系统的架构

     System.out.println("操作系统版本号:" + System.getProperty("os.version")); // 操作系统版本号

     System.out.println("文件分隔符:" + System.getProperty("file.separator")); // 文件分隔符

     System.out.println("路径分隔符:" + System.getProperty("path.separator")); // 路径分隔符

     System.out.println("直线分隔符:" + System.getProperty("line.separator")); // 直线分隔符

     System.out.println("操作系统用户名:" + System.getProperty("user.name")); // 用户名

     System.out.println("操作系统用户的主目录:" + System.getProperty("user.home")); // 用户的主目录

     System.out.println("当前程序所在目录:" + System.getProperty("user.dir")); // 当前程序所在目录

原文地址:https://www.cnblogs.com/xixiaonuma/p/10767334.html

时间: 2024-11-10 22:12:28

关于System.getProperty("java.io.tmpdir");的输出,及System.getProperty();参数(转自扑球小猫)的相关文章

java.io.tmpdir指定的路径在哪?

Java.io.tmpdir介绍 System.getproperty("java.io.tmpdir")是获取操作系统缓存的临时目录,不同操作系统的缓存临时目录不一样, 在Windows的缓存目录为:C:\Users\登录用户~1\AppData\Local\Temp\ Linux:/tmp System.getProperty(""),可以操作一下参数: java.version Java运行时环境版本 java.vendor Java运行时环境供应商 java

java.io.tmpdir在哪里?

查找所在目录的方式如下: System.out.println(System.getProperty(“java.io.tmpdir”)); System.getProperty(),还可以获取更多其他的系统字符,具体可以查看文档 在我电脑上打印的log日志是: C:\Users\wxl19\AppData\Local\Temp\ 在不同的操作系统上java.io.tmpdir指向的目录是不一样的,下面是网上给的参考资料 操作系统不同 这个系统属性所表示的目录也不同On Windows: jav

java.io.tmpdir在什么位置

操作系统不同 这个系统属性所表示的目录也不同 On Windows: java.io.tmpdir:[C:\DOCUME~1\joshua\LOCALS~1\Temp\] On Solaris: java.io.tmpdir:[/var/tmp/] On Linux: java.io.tmpdir: [/tmp] On Mac OS X: java.io.tmpdir: [/tmp] The default temporary-file directory is specified by the

Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bhive.session.id%7D_resources

原因:环境变量设置问题 <property>    <name>Hive.exec.local.scratchdir</name>    <value>${system:Java.io.tmpdir}/${system:user.name}</value>    <description>Local scratch space for hive jobs</description>  </property> 

hive启动报错 java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7B

启动hive报错: [[email protected] conf]# hive Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j.properties SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hadoop2/share/hadoop/

hive启动时报错${system:java.io.tmpdir

Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D这是因为在hive-site.xml配置文件中需要配置system:java.io.tmpdir属性. 在配置文件中加入: <proper

Exception in thread &quot;main&quot; java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

问题原因是Hive里面配置的相对路径没有找到,我们可以直接在文件里面修改为绝对路径. 1.在hive下面窗口temp文件夹 cd /opt/hive mkdir temp cd temp 2.查看temp所在路径 pwd temp 3.进入hive-site.xml里面 vim /opt/hive/conf/hive-site.xml 4.搜索system:java.io.tmpdir字样的东西,修改为绝对路径(/opt/hive/apache-hive-2.3.6-bin/temp)就可以了.

org.springframework.boot.web.server.WebServerException: Unable to create tempDir. java.io.tmpdir is set to C:\Users\ADMINI~1\AppData\Local\Temp\2\

问题原因:springboot创建临时文件找不到对应的目录 解决办法:1. 重新指定临时文件位置  java -Djava.io.tempdir=D:/tmpdir -jar -my_project.jar 2. 手动创建指定文件夹 3. 启动类中加入配置临时文件目录 @Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory

[Java IO]基础:读取文件

1. 读取文件路径字符串 1.1 利用ClassLoader类方法获得文件路径 System.out.println(this.getClass().getClassLoader().getResource(".").getPath());// 得到的是项目的class文件路径 System.out.println(this.getClass().getClassLoader().getResource("").getPath());// 得到的是项目的class文