我试图学习如何在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
放在我要打开的每个应用程序的末尾?)
答案 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();
}
}
而且你也没有在那个目录中指定你想要执行的文件,这也可能是问题