執行任何exe文件我有一個Java應用程序中,用戶可以給任何可執行文件(.exe),應用程序將在系統上運行它。像CMD.EXE,NOTEPAD.EXE或UNIX的a.out等從Java應用程序
現在我已經通過大量的例子只是不打算之後編寫的代碼似乎爲用戶創建文件的notepad.exe工作正常工作,但編寫的文件使用TC++並且全部不起作用。任何人都可以指出這裏錯誤的原因是什麼?
import java.io.*;
class NewThread implements Runnable{
Thread t;
NewThread(){
t = new Thread(this, "Demo Thread");
System.out.println("child thread:" + t);
t.start();
}
public void run(){
try
{
String line;
Process p = Runtime.getRuntime().exec("C:\\TC\\BIN\\AA.EXE");
InputStream in = p.getInputStream();
OutputStream out = p.getOutputStream();
InputStream err = p.getErrorStream();
BufferedReader br= new BufferedReader(new InputStreamReader(in));
System.out.println("Chid running");
while((line=br.readLine())!=null){
System.out.println(line);
}
//p.destroy();
}
catch (Exception e)
{
System.out.println("ERROR");
}
System.out.println("Child thread exiting");
}
}
class ThreadDemo {
public static void main (String args[]){
new NewThread();
try {
for(int i=05;i>0;i--){
System.out.println("Main Thread:" + i);
Thread.sleep(1000);
}
} catch (InterruptedException e){
System.out.println("Main thread Interrupted");
}
System.out.println("Main thread exiting");
}
}
.... OK ...當我運行使用Eclipse的>子線程退出[所有System.out的消息被印在控制檯,但要由印不是那些它不工作方式.exe AA.exe根本不運行。其他的一些要點:
- 它運行正常,沒有異常拋出唯一的問題是 AA.exe的輸出是不可見的任何地方。
- 它打印退出代碼7爲進程p ...任何線索????
- Notepad.exe的或當通過此代碼調用MSWord.exe甚至TC.exe的運行完全正常 。
這裏的代碼AA.exe:
#include <stdlib.h>
#include <stdio.h>
#include <values.h>
#include <time.h>
int main(void)
{
int i,j;
for(j=0;j<150;j++)
{
// randomize();
for(i=0;i<200;i++)
printf("%d\n", rand() % MAXINT);
}
return 0;
}
首先:界定「不工作」:** **怎麼它不能正常工作。第二:**至少**使用'e.printStackTrace()'在你的'catch'塊中打印stacktrace。第三:閱讀[當'Runtime.exec()'不會](http://www.javaworld。COM /和javaworld/JW-12-2000/JW-1229-traps.html)。 – 2011-04-08 08:20:48
你會得到什麼輸出?你必須閱讀輸出以防止它被阻塞,並可能試圖告訴你一個你忽略的錯誤消息。另外,不要忽略異常,以便將它們打印出來。 – 2011-04-08 08:21:47
@Joachim @Peter:關於異常的點注意.. :)我編輯過的問題 – Sudh 2011-04-09 19:30:09