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

Java 为什么System.getenv(“HOMEPATH”)在Windows上不返回绝对路径?,java,Java,在Linux上System.getenv(“HOME”)返回绝对路径/HOME/user,但在Windows上返回Users\user 在Windows上,主驱动器在HOMEDRIVE变量中单独指定。将其与HOMEPATH连接,可获得绝对路径: String home = System.getenv("HOMEDRIVE")+System.getenv("HOMEPATH"); 在Windows上,home drive在HOMEDRIVE变量中单独指定。将其与HOMEPATH连接,可获得绝对路

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

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

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

在Windows上,home drive在
HOMEDRIVE
变量中单独指定。将其与
HOMEPATH
连接,可获得绝对路径:

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

如果希望在多个操作系统上使用相同的功能,则需要使用
System.getProperty(“user.home”)

System.getenv
依赖于操作系统或上下文-无法保证
System.getenv(“HOME”)
在给定的操作系统上返回任何特定的内容,幸运的是,在Unix上获得的内容与在Windows上获得的内容类似

系统的Javadoc.getenv

环境变量是依赖于系统的外部命名值

对于
System.getProperty
,有一个属性列表,您可以通过独立于系统的方式获取这些属性:


其中之一是
user.home
:“用户的主目录”

如果您希望在多个操作系统上使用相同的内容,则需要使用
System.getProperty(“user.home”)

System.getenv
依赖于操作系统或上下文-无法保证
System.getenv(“HOME”)
在给定的操作系统上返回任何特定的内容,幸运的是,在Unix上获得的内容与在Windows上获得的内容类似

系统的Javadoc.getenv

环境变量是依赖于系统的外部命名值

对于
System.getProperty
,有一个属性列表,您可以通过独立于系统的方式获取这些属性:


其中一个是
user.home
:“用户的主目录”

对于我,它返回
\Users\myUser
,这是主驱动器的绝对路径对于我,它返回
\Users\myUser
,这是主驱动器的绝对路径