黑马程序员技术交流社区
标题:
Runtime对象执行文件出问题了
[打印本页]
作者:
严海荣
时间:
2012-9-22 14:55
标题:
Runtime对象执行文件出问题了
import java.io.IOException;
public class RuntimeDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Runtime r = Runtime.getRuntime();
System.out.println(System.getProperty("user.dir"));//G:\JavaSe\JAVASE复习
try {
r.exec("java.txt");//为什么执行不了,这里的路径得是放哪儿
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
复制代码
我的java.txt文件在G:\JavaSe\JAVASE复习 的目录下,为什么执行不了,和环境变量有关系吗?
作者:
宁振庄
时间:
2012-9-22 15:09
本帖最后由 宁振庄 于 2012-9-22 15:18 编辑
exec()方法缺少命令。txt文件需要记事本程序(notepad.exe)打开
把
r.exec("java.txt");
改成
r.exec("notepad.exe java.txt"); //这两个文件都是在系统环境变量里找得到所以不用写完整路径
也就是说这方法执行的是exe文件,如r.exec("d:\\魔兽争霸3\\war3.exe"),后面跟着的是以这个exe程序打开的文件(注意格式),如r.exec("d:\\迅雷看看\\XMP.EXE D:\\教育片\\某岛国片1.avi")。
作者:
宁振庄
时间:
2012-9-22 17:23
你回去看看老毕的IO视频有专门讲到Runtime类,notepad.exe好像是在c:\windows\system32下(XP系统),在而这个路径已经设置在系统环境变量里面了所以不用写全路径。
大多数文件都是“资源文件”,比如说java.txt,你双击这些资源文件的时候其实是系统先执行与其相关联的exe程序(默认是记事本,也就是notepad.exe),再通过这个记事本程序打开你这个java.TXT
你这么写只写了资源文件的路径当然放不了
作者:
吴兵
时间:
2012-9-22 22:27
import java.io.IOException;
public class RuntimeDemo2 {
public static void main(String[] args) {
Runtime r = Runtime.getRuntime();
System.out.println(System.getProperty("user.dir"));//G:\JavaSe\JAVASE复习
try {
r.exec("notepad G:\\JavaSe\\JAVASE复习\\java.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}
复制代码
exec一个新的process对象,用来管理进程
打开你的.txt文件的时候,进入任务管理器你看到的进程是notepad.exe
所以应为r.exec("
notepad
G:\\JavaSe\\JAVASE复习\\java.txt"); 代码如上
作者:
燃烧端午
时间:
2012-9-22 22:41
import java.io.IOException;
public class RuntimeDemo {
public static void main(String[] args) {
Runtime r = Runtime.getRuntime();
try {
r.exec("G:\\JavaSe\\JAVASE复习\\java.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2