Groovy/Java在Windows机器上获取用户变量
我们有:Groovy/Java在Windows机器上获取用户变量,java,windows,groovy,environment-variables,Java,Windows,Groovy,Environment Variables,我们有: System.getenv() 用于获取系统变量(红色箭头),但我不知道如何获取用户变量(蓝色箭头) 从JVM的角度来看,在系统或用户级别设置环境变量并不重要。 它们无论如何都会被Windows合并(显然,特定用户会话的特定用户变量) 获取此类变量值的代码是System.getenv(“variablename”),在Groovy或Java中看起来完全相同 什么可能导致变量为空?设置此变量后,需要重新启动应用程序。它可以是IDE、www服务器或任何东西。JVM需要有机会在初始化时获取
System.getenv()
用于获取系统变量(红色箭头),但我不知道如何获取用户变量(蓝色箭头)
从JVM的角度来看,在系统或用户级别设置环境变量并不重要。 它们无论如何都会被Windows合并(显然,特定用户会话的特定用户变量) 获取此类变量值的代码是
System.getenv(“variablename”)
,在Groovy或Java中看起来完全相同
什么可能导致变量为空?设置此变量后,需要重新启动应用程序。它可以是IDE、www服务器或任何东西。JVM需要有机会在初始化时获取新变量(或旧变量的新值)
检查变量是否已设置的简单测试是运行windows控制台(cmd)并键入set
。这将打印所有可用的环境变量,包括用户变量
还有一件值得一提的事情是您在示例中指向的PATH
变量。Windows对待这一个与其他任何一个都不同。通常,每当您使用与现有系统变量相同的名称设置用户变量时,这意味着系统值将被此用户会话的用户值覆盖。
但是,使用PATH
变量,Windows会将系统值附加到用户值
无论如何,如果在用户级别设置了名称相同但值不同的变量,则无法访问给定变量名的系统变量值。它已经被覆盖或追加。从JVM的角度来看,无论您是在系统级还是在用户级设置环境变量都无关紧要。 它们无论如何都会被Windows合并(显然,特定用户会话的特定用户变量) 获取此类变量值的代码是
System.getenv(“variablename”)
,在Groovy或Java中看起来完全相同
什么可能导致变量为空?设置此变量后,需要重新启动应用程序。它可以是IDE、www服务器或任何东西。JVM需要有机会在初始化时获取新变量(或旧变量的新值)
检查变量是否已设置的简单测试是运行windows控制台(cmd)并键入set
。这将打印所有可用的环境变量,包括用户变量
还有一件值得一提的事情是您在示例中指向的PATH
变量。Windows对待这一个与其他任何一个都不同。通常,每当您使用与现有系统变量相同的名称设置用户变量时,这意味着系统值将被此用户会话的用户值覆盖。
但是,使用PATH
变量,Windows会将系统值附加到用户值
无论如何,如果在用户级别设置了名称相同但值不同的变量,则无法访问给定变量名的系统变量值。它已经被覆盖或追加。它们不是都是环境变量集吗?它们不是都是环境变量集吗?是的,您是正确的,都是在查询
system.getenv(“路径”)时检索到的用户特定路径值和系统范围的路径值如果您正在使用此工具编写脚本,并且系统/用户变量是在启动后创建的,那么应该从my Experience中重新启动code>SoapUI GUI。是的,您是正确的,在查询System.getenv(“Path”)时检索了用户特定路径值和系统范围的路径值如果您正在使用此工具编写脚本,并且系统/用户变量是在启动后创建的,那么应该从my Experience重新启动code>SoapUI GUI。