我试图理解哪些系统变量有这个值。我执行这个代码并得到一些字符串。
inetaddress.getlocalhost().getcanonicalhostname();
在此之后,我打印我所有的系统环境
system.getenv().foreach((k,v)->system.out.println(“k=“+k+”v=“+v));
我找到所有有一些字符串的变量,并用
@ClassRule
public final static EnvironmentVariables ENVIRONMENT_VARIABLES = new EnvironmentVariables();
final String pcNameForEnv = "test-pc-name";
ENVIRONMENT_VARIABLES.set("USERDOMAIN", pcNameForEnv);
但我的测试失败了
@Test
public void getMachineNameFromEnv() {
final String pcNameForEnv = "test-pc-name";
ENVIRONMENT_VARIABLES.set("USERDOMAIN", pcNameForEnv);
final String machineName = networkUtil.getPCNetworkName();
assertEquals(pcNameForEnv, machineName);
}
我发现我需要更换这个版本:
“user.name”,“user.home”,“logonserver”,“computername”,“userdomain\u roamingprofile”,“userdomain”,“computername”,“machinename”;
但这对我也没有帮助。
1条答案
按热度按时间pvabu6sv1#
您不能设置一个环境变量来让java认为您在另一台机器上。来自java.lang.inetaddress-
返回本地主机的地址。这是通过从系统中检索主机名,然后将该名称解析为inetaddress来实现的。