转自:http://blog.sina.com.cn/s/blog_6b96eae10100ok01.html
今天在Eclipse中写了用到 Runtime.getRuntime().exec("java MyTest"); 来启动一个新的java程序,无奈却无法启动MyTest类。
而这个程序在cmd中是可以完全正常运行的。于是我将MyTest.class(除去包名)复制到此工程的根目录下,突然发现MyTest程序启动
了!
我由此得出结论,使用Runtime.getRuntime().exec来启动其他java程序时, java虚拟机是在工程的根目录下开始查找这个类的,而这个类实际存在于bin目录下面。这时只要在命令中加入classpath的设置信息皆可,另外需 加上包名。
最后修改代码如下:
Runtime.getRuntime().exec("java -classpath H:\\workspace\\javawork\\bin cn.itcast.io.MyTest");
或者
Runtime.getRuntime().exec("java -classpath .\\bin cn.itcast.io.MyTest"); .代表当前目录.
或者
Runtime.getRuntime().exec("java -classpath bin cn.itcast.io.MyTest");
程序正常运行!