我需要使用java更改计算机IP地址...我已经尝试过此操作,但这不起作用...
String str1="192.168.0.201";
String str2="255.255.255.0";
String[] command1 = { "netsh", "interface", "ip", "set", "address",
"name=", "Local Area Connection" ,"source=static", "addr=",str1,
"mask=", str2};
Process pp = java.lang.Runtime.getRuntime().exec(command1);
[(可能)您需要正确连接那些key=value
参数-按照书面说明,它们将被视为单独的参数,即
{..., "addr1=" + str1, "mask=" + str2 };
您尝试过这个吗?
String[] command1 = { "netsh", "interface", "ip", "set", "address",
"name=\"Local Area Connection\"" ,"source=static", "addr="+str1,
"mask="+str2};
请注意,现在=后的参数不能用空格分隔。另请注意,双引号引起了“本地连接”。
如果仍然不起作用,请尝试将本地连接用单引号引起来,如下所示:
"name='Local Area Connection'"
public class DaysinaMonth {
public static void main(String[] args) throws Throwable{
String str1="192.168.0.201";
String str2="255.255.255.0";
String[] command1 = { "netsh", "interface", "ip", "set", "address",
"name=", "Local Area Connection" ,"source=static", "addr=",str1,
"mask=", str2};
Process pp = java.lang.Runtime.getRuntime().exec(command1);
System.out.print( pp);
}
}
这似乎可行,但返回值很奇怪:java.lang.ProcessImpl@659e0bfd
未发现错误,并且我的IP已更改,但未达到预期的方式。
我测试了您发布的代码,这是我收到的错误
线程“主”中的异常java.lang.Error:未解决的编译问题:未处理的异常类型IOException
at DaysinaMonth.main(DaysinaMonth.java:9)
在此行发现错误:
Process pp = java.lang.Runtime.getRuntime().exec(command1);
我没有解决此问题的建议,但是我可以说,看一下提供的代码,除非用于形成循环,否则运行时似乎没有用,但是由于您没有将IP设置为随机生成的数字,没有理由要做。
请确保您的界面名称
使用cmd中的netsh interface ipv4 show config
检查连接的名称