黑马程序员技术交流社区

标题: Runtime对象执行文件出问题了 [打印本页]

作者: 严海荣    时间: 2012-9-22 14:55
标题: Runtime对象执行文件出问题了
  1. import java.io.IOException;
  2. public class RuntimeDemo {
  3.         public static void main(String[] args) {
  4.                 // TODO Auto-generated method stub
  5.                 Runtime r  = Runtime.getRuntime();
  6.                 System.out.println(System.getProperty("user.dir"));//G:\JavaSe\JAVASE复习
  7.                 try {
  8.                         r.exec("java.txt");//为什么执行不了,这里的路径得是放哪儿
  9.                 } catch (IOException e) {
  10.                         // TODO Auto-generated catch block
  11.                         e.printStackTrace();
  12.                 }
  13.         }
  14. }
复制代码
我的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
  1. import java.io.IOException;
  2. public class RuntimeDemo2 {
  3. public static void main(String[] args) {

  4. Runtime r = Runtime.getRuntime();
  5. System.out.println(System.getProperty("user.dir"));//G:\JavaSe\JAVASE复习
  6. try {
  7. r.exec("notepad G:\\JavaSe\\JAVASE复习\\java.txt");
  8. } catch (IOException e) {

  9. e.printStackTrace();
  10. }
  11. }
  12. }
复制代码
exec一个新的process对象,用来管理进程

打开你的.txt文件的时候,进入任务管理器你看到的进程是notepad.exe

所以应为r.exec("notepad G:\\JavaSe\\JAVASE复习\\java.txt");  代码如上
作者: 燃烧端午    时间: 2012-9-22 22:41
  1. import java.io.IOException;

  2. public class RuntimeDemo {

  3.         public static void main(String[] args)  {
  4.                         Runtime r = Runtime.getRuntime();
  5.                        try {
  6.                         r.exec("G:\\JavaSe\\JAVASE复习\\java.txt");
  7.                 } catch (IOException e) {
  8.                         e.printStackTrace();
  9.                 }
  10.                              
  11.              
  12.         }

  13. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2