关于java调用本地应用程序

关于java调用本地应用程序(黑窗口CMD,或exe可执行文件)

String path = "D:\\xx.bat";
Runtime.getRuntime().exec(path);

当然,像这种cmd命令窗口,执行后可能需要对其进行一些操作,或者查看执行结果等,所以可以用到Process类

Process p =Runtime.getRuntime().exec(path);
// 获取子进程执行的错误流
p.getErrorStream();
// 获取子进程的输入流
p.getInputStream();
// 获取子进程的输出流
p.getOutputStream();
// 阻塞当前线程,直至子进程终止
p.waitFor();
// 执行结果码(子进程执行后退出时返回值,0表示正常)
int exitValue = p.exitValue();
...

如果想销毁该子进程(停止执行)

Process p =Runtime.getRuntime().exec(path);
// 某些操作...
// 退出该子进程(人为),有两种方式
// 方式一,直接通过p对象调用方法退出
p.destroy();
// 方式二,例如退出cmd窗口:
Runtime.getRuntime().exec("cmd.exe /C start wmic process where name = 'cmd.exe' call terminate");

需要注意点是,若调用的路径中包含有空格,则需要对路径作出处理,才能执行

String path = "D:\\Program Files\\xx.bat";
// 空格需要使用双引号包裹
Runtime.getRuntime().exec(path.replace(" ", "\" \""));

最后补充关于获取本地路径(个别路径,完整的可自行百度):

javax.swing.filechooser.FileSystemView fsv = javax.swing.filechooser.FileSystemView.getFileSystemView();
fsv.getDefaultDirectory().getAbsolutePath(); //读取我的文档路径
fsv.getHomeDirectory().getAbsolutePath(); //读取桌面路径
...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章