package ioTest.io1;
/*
* Runtime:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
* 这也是jvm实现跨平台的一个重要原因。
* 可以通过 getRuntime 方法获取当前运行时。
* API分析:
* public class Runtime extends Object
* 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
* 可以通过 getRuntime 方法获取当前运行时。
* 应用程序不能创建自己的 Runtime 类实例
*
* api中发现,没有构造函数,却又有非静态的方法,那么必然就有静态的方法获取Runtime的实例对象
* getRuntime()
返回与当前 Java 应用程序相关的运行时对象。
*
*
*/
public class RuntimeDemo {
public static void main(String[] args) throws Exception {
Runtime runtime=Runtime.getRuntime();
//执行command命令,能够启动控制台输入命令,并执行的作用。
//可以用Java程序启动Java程序中的任意一个文件。
Process process=runtime.exec("D:\\app\\Xmp\\Program\\XMP.exe");
/*
* exec()的返回值是Process类的对象
* Process类:除了构造函数,其余的都是抽象方法,本来应该是为了子类去实现。
* 但是发现Process类,并没有子类。实际上在调用上述方法时候,调用了系统资源
* 去创建了该类的实例。
*/
//Thread.sleep(4000);
process.destroy();//不能结束非上述方法启动的进程,因为没法获取相应的对象。
//利用上述方法就可以做一个简单的电脑应用程序启动的一个管理面板小程序
runtime.exec("notepad.exe C:\\Users\\Leon\\New folder\\ioTest\\src\\ioTest\\io1\\RuntimeDemo.java");
//问题:如何用相对路径解决上面的问题呢?
}
}