如何在java中使用命令重启modem

时间:2015-04-24 14:15:27

标签: java command-prompt

嗨我想用java中的命令提示符重新启动我的adsl调制解调器。但是当想要用户名时cmd会停止,必须输入。什么是问题?

tap_mark label ("com.blabla -v505")

when username must be entered

2 个答案:

答案 0 :(得分:2)

您可能还需要在每个参数之间留一个空格。键入它的方式是将命令发送到如下所示的提示:

cmd /c start cmd.exe /ctelnet 192.168.1.1 23/cadmin/cadmin/creboot

添加System.out.println(命令);在创建字符串后查看String中的实际内容。

将您的代码编辑为以下内容:

String command = "cmd /c start cmd.exe /c "+tel+" /c "+user+" /c "+pass+" /c "+reboot;
System.out.println(command);

答案 1 :(得分:2)

您需要将用户名和密码以及reboot命令发送到telnet命令的标准输入(stdin)。为此,请创建一个流程,然后:

// You /probably/ don't need "cmd /c" here ...
Process child = Runtime.getRuntime().exec(tel);

// Write to stdin of child, force flush after each line
// Yes, you need to get an OutputStream here ... it's connected to stdin of the child
PrintWriter out = new PrintWriter(child.getOutputStream(), true);
out.println("admin");
out.println("admin");
out.println("reboot");

请注意,在您发送这些命令以防止子进程阻止时,您可能必须阅读stdout。为此,创建一个后台线程。请参阅此帖子:http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html?page=2