2016-07-26 47 views
0

我试图学习如何在Java,NetBeans中使用Runtime,但是当我尝试调用与记事本不同的应用程序时,编译器会停留在第一个空间中。我不找问题,其有史以来最简单的代码:如何使用运行时

package javaapplication2; 

import java.io.IOException; 

public class JavaApplication2 { 


public static void main(String[] args) throws Exception { 

    try{ 

      Process p = Runtime.getRuntime().exec("TI30886800A(C:)/Archivos de Programa/DitelCapture/DitelCaptureV4.4"); 
    }catch(IOException ioe){ 
     ioe.printStackTrace(); 
    } 
} 

} 

我得到这个错误:

java.io.IOException: Cannot run program "TI30886800A(C:)/Archivos": CreateProcess error=2, El sistema no puede encontrar el archivo (The system couldnt found the specified file). 

(另外,我需要把.exe在每一个应用程序,我想结束开?)

+1

我不熟悉你的文件位置的符号。 – Compass

+1

给出可执行文件的绝对路径 – Shriram

+2

您是否尝试过转义文件路径中的空格? – SamTebbs33

回答

0

你的文件路径:

"TI30886800A(C:)/Archivos de Programa/DitelCapture/DitelCaptureV4.4" 

看起来并不很像,因为TI30886800A文件路径。你想执行文件路径的语法是这样的(你将不得不使用转义引号,因为有空格的文件路径):

public static void executeCommand() { 
    try { 
     Process p = Runtime.getRuntime().exec("cmd /c start filename.exe, null, new File("\"C:/Archivos de Programa/DitelCapture/DitelCaptureV4.4\"")); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

,你也不要指定目录下的文件你想被执行,这也可能是问题

+0

你是对的,我使用了错误的文件路径,它现在起作用了,谢谢! –

+0

@IgnacioMtzDeSalinasUreta没问题的人。只需选择最能解决您问题的答案,以便我们可以关闭该主题。 – Julian

0

使用(逃脱)报价来解决空间

Process p = Runtime.getRuntime().exec("\"TI30886800A(C:)/Archivos de Programa/DitelCapture/DitelCaptureV4.4\""); 
+0

谢谢!使用新路径 –

0

"TI30886800A(C:)/Archivos de Programa/DitelCapture/DitelCaptureV4.4" 

看起来不正确的文件路径。

你可能需要类似:

"C:\\Archivos de Programa\\DitelCapture\\DitelCaptureV4.4" 

降 “TI30886800A” 和周围C中的括号:。

为什么这样的路径?

+0

谢谢你的回答,我使用了不正确的路径,我认为我可以使用西班牙语的方向,但它必须是这样的:C:\ Program Files(x86)\ DitelCapture。 –