黑马程序员技术交流社区

标题: 关于Runtime类中exec方法的执行问题,求教! [打印本页]

作者: 刘亚东    时间: 2014-11-7 17:17
标题: 关于Runtime类中exec方法的执行问题,求教!
在看毕老师视频的时候有一集是讲Runtime类的,其中讲到了可以通过exec方法打开应用程序,我按照老师的代码打完没有得到相应的结果,下面给出代码和控制台错误提示,请各位高手帮忙解惑啊!在此求教,不胜感激!

  1. <p>//通过代码打开C盘中的美图秀秀应用程序。路径没有问题,是直接copy过来的。</p><p>class RuntimeDemo
  2. {
  3. public static void main(String[] args) throws Exception
  4. {
  5.   //System.out.println("Hello World!");
  6.   Runtime r = Runtime.getRuntime();
  7.   r.exec("C:\\Program Files\\Meitu\\XiuXiu\\XiuXiu.exe");
  8. }
  9. }
  10. </p><p> </p>
复制代码

以下是控制台报出的错误:

D:\test\java>javac RuntimeDemo.java
D:\test\java>java RuntimeDemo
Exception in thread "main" java.io.IOException: Cannot run program "C:\Program":
CreateProcess error=2, ?????????
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
        at java.lang.Runtime.exec(Runtime.java:615)
        at java.lang.Runtime.exec(Runtime.java:448)
        at java.lang.Runtime.exec(Runtime.java:345)
        at RuntimeDemo.main(RuntimeDemo.java:21)
Caused by: java.io.IOException: CreateProcess error=2, ?????????
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:288)
        at java.lang.ProcessImpl.start(ProcessImpl.java:133)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
        ... 4 more


请各位高手大神指教


作者: qq8921310    时间: 2014-11-7 21:22
可能是你电脑设置的问题吧.
作者: 刘亚东    时间: 2014-11-8 11:46
qq8921310 发表于 2014-11-7 21:22
可能是你电脑设置的问题吧.

应该怎么设置啊?
作者: 刘亚东    时间: 2014-11-8 11:48
qq8921310 发表于 2014-11-7 21:22
可能是你电脑设置的问题吧.

应该怎么设置啊?
作者: qq8921310    时间: 2014-11-8 13:12
在java中获取文件路径的时候,有时候会获取到空格,但是在中文编码环境下,空格会变成“%20”从而使得路径错误
作者: 刘亚东    时间: 2014-11-8 13:15
qq8921310 发表于 2014-11-8 13:12
在java中获取文件路径的时候,有时候会获取到空格,但是在中文编码环境下,空格会变成“%20”从而使得路径 ...

对,我也发现了,好像是因为Program File这个文件名之间的空格的问题,我换了一个没有空格的路径名就可以正常运行了。
可是怎么解决呢?
系统默认的程序文件都是存放在Program File里的啊?
作者: qq8921310    时间: 2014-11-8 13:56
没怎么考虑过,你试试new File();
作者: 刘亚东    时间: 2014-11-8 18:37
qq8921310 发表于 2014-11-8 13:56
没怎么考虑过,你试试new File();

把路径封装在File对象里?
作者: 荣英洁    时间: 2014-11-8 19:04
C:\\Program Files\\Meitu\\XiuXiu\\XiuXiu.exe  是这里的问题,你现在dos 下运行看看,能不能打开美图秀秀
作者: 刘亚东    时间: 2014-11-11 15:24
荣英洁 发表于 2014-11-8 19:04
C:\\Program Files\\Meitu\\XiuXiu\\XiuXiu.exe  是这里的问题,你现在dos 下运行看看,能不能打开美图秀秀 ...

你的意思是用cmd启动?应该不是路径啊。
作者: newLife    时间: 2014-11-11 19:41
学习了:lol




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