标签:调用 Java exec getRuntime cmd command java 运行
使用 java 调用 cmd 命令时,使用如下的代码(不需要导入其他库)
Runtime.getRuntime().exec(command); //command是需要运行的命令
但是呢,这样是运行不了的,要进行异常处理:
try {
Runtime.getRuntime().exec(command);
} catch (IOException e1) { // 改自己的异常类
e1.printStackTrace();
}
现在,可以运行exe文件,但是若运行 gpedit.msc devmgmt.msc 等工具无反应
解决办法是,设定cmd的运行模式(这不是java的语法,是在cmd中设置):
#转至https://blog.csdn.net/liuyukuan/article/details/5974517
cmd /c command 执行完命令后关闭命令窗口。
cmd /k command 执行完命令后不关闭命令窗口。
cmd /c start command 会打开一个新窗口后执行命令,原窗口会关闭。
cmd /k start command 会打开一个新窗口后执行命令,原窗口不会关闭。
将命令改变后,就可以正常使用会弹出新窗口的程序了
但是,现在只能使用有图形界面的程序,如果要调用出命令行及没有图型界面的程序,则要用下面两个命令,不然不会弹出。
例如:
Runtime.getRuntime().exec("cmd /c powershell"); // 无反应
Runtime.getRuntime().exec("cmd /c start powershell"); // 成功调出powershell
个人理解是: java会在后台运行一个控制台,然后再运行输入的代码,但是这个控制台是不会到前台的,所以没图形界面的程序虽然能运行,但是无法显示.
至于为什么不能运行 *.msc 等工具,还不是很清楚
总结:
1. java运行 可执行文件,使用如下代码(也可以加上运行模式)
try {
Runtime.getRuntime().exec( exeName ); // 将 exeName 改成 应用程序名
} catch (IOException e1) { // 改自己的异常类
e1.printStackTrace();
}
2. java 执行 *.msc 类文件,要加上前面四种运行模式的一种.
3. java 执行 无图形界面 软件,要用最后两种运行模式之一.
补充:
学生党,单纯做笔记使用,若有不足之处请指正,感激不尽!
标签:调用,Java,exec,getRuntime,cmd,command,java,运行 来源: https://www.cnblogs.com/youmiyou/p/15779230.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。