在这个案例中,涉及到了单例设计模式。
class RuntimeTest
{
public static void main(String[] args) throws Exception
{
Runtime runtime = Runtime.getRuntime();
runtime.exec("notepad.exe");
//打开记事本应用程序
}
}
笔者在这里只是简单的抛出了一个Exception,在实际应用中自然不推荐这样处理,exec()这个方法用于运行对应的文件。
有一点要提及的是,exec()这个方法里的参数为字符串,如果你要打开本机磁盘上摸个exe文件,应该这要输入(这里以笔者本机上的QQ为例):D:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQ.exe; 这里要输入两次\,原因想必学过一点编程的人都懂(转义字符)。
对于上面那个打开记事本应用程序的例子,至于为甚麽不用输入对应的磁盘路径,原因是这样的,大家在配置jdk时,都会填写一个叫做path的系统环境变量,对于系统自带的应用程序,是不用加入磁盘路径的(一般是在c盘里的Program File(x86)文件夹)。
在打开notepad这个应用程序时,后面可以加个文件名(可以用记事本正常打开的文件)
runtime.exec("notepad.exe" RuntimeTest.java);
//用记事本打开RuntimeTest.java文件
此外,可以用Process类里面的destroy()方法杀掉进程,但是这个方法只能杀掉由Runtime这个类开启的程序,而不用杀掉非Runtime类调用的程序,诸如操作系统一些自起的程序。
class RuntimeTest1
{
public static void main(String[] args) throws Exception
{
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec("notepad.exe");
//打开记事本应用程序
Thread.sleep(5000);
//使进程休眠5秒
p.destroy();
//杀死记事本进程
}
}