我有一个在服务器上运行的java servlet,以及一个位于同一服务器上的'exe文件',
我希望,在响应客户端传递参数到servlet时,运行位于服务器上的exe文件并将其显示给客户端,甚至是屏幕截图,
任何想法?? !!请帮忙
答案 0 :(得分:1)
您可以使用Process
和Runtime
类
例如:
Runtime r = Runtime.getRuntime();
Process p = r.getRuntime().exec("C:\\newfolder\\run.exe");
有关截屏,请参阅how to take sc in java
这样您就可以保存图像,然后将此图像发送给用户。
要将图像发送到客户端,请参阅how to send file from sever to client
这些是碎片,你需要把它们放在一起
更新1:杀死你可以使用p.destroy()
的exe(虽然不是一个好的实现,因为它强行杀死了这个过程)
UPDATE2:检查进程(执行你的exe)是否因此检查exe是否正在运行,你可以参考how to check if a process is running
答案 1 :(得分:0)
您可以通过以下代码在Java中运行外部命令:
Process p = Runtime.getRuntime().exec("your_external_program_here");
您也可以传递参数,只需修改上面的行,以包含您想要传递给程序的参数。
要检索流程的“输出”,您需要获取流程的输入流:
InputStream output = p.getInputStream();
请注意,输入流是流程的管道输出。然后,您可以查看内容(建议使用缓冲的阅读器),如下所示:
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(output));
while ((line = reader.readLine()) != null) { ... }
或者您也可以查看更易于使用的ProcessBuilder:)