Java 如何执行指定的exe文件
我需要使用java程序执行任何文件。就像在jdk中,我们有java,javac…就像那样Java 如何执行指定的exe文件,java,Java,我需要使用java程序执行任何文件。就像在jdk中,我们有java,javac…就像那样 URL url = new URL("http://torrentz.eu/announcelist_116568555"); url.openConnection(); InputStream reader = url.openStream(); FileOutputStream writer = new FileOutputStream("t1.txt")
URL url = new URL("http://torrentz.eu/announcelist_116568555");
url.openConnection();
InputStream reader = url.openStream();
FileOutputStream writer = new FileOutputStream("t1.txt");
byte[] buffer = new byte[153600];
int bytesRead = 0;
while ((bytesRead = reader.read(buffer)) > 0)
{
writer.write(buffer, 0, bytesRead);
buffer = new byte[153600];
}
writer.close();
reader.close();
String[] cmd = new String[1];
cmd[0]="t1.txt";
Process p = Runtime.getRuntime().exec("C:\\Documents and Settings\\INTEL\\My Documents\\NetBeansProjects\\urldemo\\t1.txt");
p.destroy();
}
}
下面是错误列表
Exception in thread "main" java.io.IOException: Cannot run program "C:\Documents": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at urldemo.Urldemo.main(Urldemo.java:58)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:376)
at java.lang.ProcessImpl.start(ProcessImpl.java:136)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
线程“main”java.io.IOException中的异常:无法运行程序“C:\Documents”:CreateProcess error=2,系统找不到指定的文件
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
位于java.lang.Runtime.exec(Runtime.java:617)
位于java.lang.Runtime.exec(Runtime.java:450)
位于java.lang.Runtime.exec(Runtime.java:347)
位于urldemo.urldemo.main(urldemo.java:58)
原因:java.io.IOException:CreateProcess error=2,系统找不到指定的文件
在java.lang.ProcessImpl.create(本机方法)
位于java.lang.ProcessImpl。(ProcessImpl.java:376)
在java.lang.ProcessImpl.start(ProcessImpl.java:136)
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
一旦解决了路径问题,您将看到无法在windows上执行文本文件,因为文本文件不是可执行程序。如果要打开文件而不是执行文件,请使用Desktop类。例如,见
//你也可以提供其他编辑器,而不是记事本。在你的exec调用中,应该调用一个程序来打开你的.txt文件。如果我想先执行exe文件,我必须做什么?你需要一个exe文件,它必须被称为某物.exe而不是某物。txt我知道,先生。。我有一个同名的exe,在同一个目录中,我只是将文件扩展名重命名为.exe。。。现在请解释如何执行这个EXE,我正在尝试你的getDesktop方法,但它向我显示了一个错误,参数需要文件,但找到了StringOh,是的,修复了。在目录中执行exe文件的方式与在任何目录中执行exe文件的方式相同:使用问题中的代码,但使用.exe文件扩展名而不是.txtbro。如果我要在同一目录中以相同的名称执行exe,我必须做的是??Runtime.getRuntime().exec(“C:\\Documents and Settings\\INTEL\\My Documents\\NetBeansProjects\\urldemo\\t1.exe”);我这样做了..但它不起作用,首先我的程序是执行一个exe,但它对我不起作用
File file = new File ("c:/documents and settings/Intel/whatever/file.txt");
Desktop.getDesktop().open(file);
Process p = Runtime.getRuntime().exec("cmd /c start notepad C:\\Documents and Settings\\INTEL\\My Documents\\NetBeansProjects\\urldemo\\t1.txt");