为什么System.getenv(" HOMEPATH")在Windows上不返回绝对路径?

时间:2017-06-17 13:11:21

标签: java

在Linux System.getenv("HOME")上返回绝对路径/home/user,但在Windows上返回Users\user

2 个答案:

答案 0 :(得分:3)

在Windows上,主驱动器在HOMEDRIVE变量中单独指定。将其与HOMEPATH连接将为您提供绝对路径:

String home = System.getenv("HOMEDRIVE")+System.getenv("HOMEPATH");

答案 1 :(得分:1)

如果您想在多个操作系统上运行相同的功能,则需要使用./app-logo.png

System.getProperty("user.home")依赖于操作系统或上下文 - 无法保证System.getenv特定于给定的操作系统返回任何内容,只需运气即可获得Unix上的内容与您在Windows上获得的内容类似。

来自System.getenv("HOME")的Javadoc:

  

环境变量是系统相关的外部命名值。

对于System.getenv,您可以通过与系统无关的方式获得一系列属性:

https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#getProperties()

其中一个是System.getProperty:"用户的主目录"