我正在使用运行时从我的Java程序运行命令提示符命令.但是我不知道如何获得命令返回的输出.
这是我的代码:
Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send" , argument};
Process proc = rt.exec(commands);
Run Code Online (Sandbox Code Playgroud)
我尝试过,System.out.println(proc);但没有返回任何东西.该命令的执行应返回由分号分隔的两个数字,我怎样才能在变量中打印出来?
这是我现在使用的代码:
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);
InputStream stdIn = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdIn);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何东西作为我的输出,但当我自己运行该命令它工作正常.
我编写了一个在标准虚拟托管Linux解决方案上运行的Java服务器应用程序.应用程序一直运行,监听套接字连接并为它们创建新的处理程序.它是客户端 - 服务器应用程序的服务器端实现.
我启动它的方法是将它包含在服务器的启动rc.local脚本中.但是一旦启动,我不知道如何访问它来阻止它,如果我想安装更新,所以我必须重新启动服务器才能重新启动应用程序.
在Windows PC上,对于这种类型的应用程序,我可能会创建一个Windows服务,然后我可以根据需要停止并启动它.Linux盒子上有类似的东西,所以如果我启动这个应用程序,我可以停止它并重新启动它而不需要完全重启服务器.
我的应用程序称为WebServer.exe.它是在服务器启动时启动的,它包含在我的rc.local中:
java -jar /var/www/vhosts/myweb.com/phpserv/WebServer.jar &
Run Code Online (Sandbox Code Playgroud)
我在Linux上有点像菜鸟,所以任何帖子都会受到赞赏.但是我确实有SSH,并且可以通过完整的FTP访问该框以安装任何更新以及访问Plesk面板.