如何使用Runtime

时间:2016-07-26 15:19:14

标签: java runtime-error

我试图学习如何在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放在我要打开的每个应用程序的末尾?)

3 个答案:

答案 0 :(得分:0)

使用(转义)引号来处理空格

"Notice Copyright [c] 1994 Luc[as] de Groot   <luc@FontFabrik.com> Published by TEndFontMetrics..."

答案 1 :(得分:0)

if (Input::has('filterSubCat'.str_replace(' ','_',$string))){
                          $cat_sub[] = $request->input('filterSubCat'.str_replace(' ','_',$string));
 }

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

您可能需要以下内容:

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

将“TI30886800A”和括号放在C:。

附近

为什么这样的路径?

答案 2 :(得分:0)

你的文件路径:

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

看起来不像Filepath。您尝试执行的文件路径的语法是这样的(您必须使用转义引号,因为文件路径中有空格):

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();
    }
}

而且你也没有在那个目录中指定你想要执行的文件,这也可能是问题