2012-08-02 138 views
0

我想從另一個Java應用程序運行Java程序。這裏是我的代碼:從另一個Java程序運行java程序

public class Main { 
    public static int Exec() throws IOException { 
    Process p = Runtime.getRuntime().exec("javac -d C:/Users/Dinara/Desktop/D/bin " 
      + "C:/Users/Dinara/Desktop/D/src/test.java"); 
    Process p1 = Runtime.getRuntime().exec("java -classpath C:/Users/Dinara/Desktop/D/bin test"); 
    return 0; 
    } 

    public static void main(String[] args) throws IOException { 
    Exec(); 
    } 
} 

javac正常工作,並創建test.class文件中的bin目錄。但是java -classpath C:/Users/Dinara/Desktop/D/bin test不運行test.class文件。 的test.java的內容:

import java.io.*; 
class test { 
    public static void main(String args[]) { 
    try { 
     FileWriter fstream = new FileWriter("out.txt"); 
     BufferedWriter out = new BufferedWriter(fstream); 
     out.write("Hello Java"); 
     out.close(); 
    } catch (Exception e) { 
    System.err.println("Error: " + e.getMessage()); 
    } 
    } 
} 

我想這有點毛病承認Java命令。你能否給我一個示例代碼來解決這個問題或分享想法?我正在使用Netbeans來運行Main類,並且應用程序文件夾的位置是C:\ Users \ Dinara \ Main

回答

3

使用

System.getProperty("java.home") + "/bin/java -classpath C:/Users/Dinara/Desktop/D/bin test" 

代替

"java -classpath C:/Users/Dinara/Desktop/D/bin test" 
+0

我沒有使用你的榜樣,但我仍然不能得到out.txt與結果文件;( – Dinara 2012-08-02 10:57:50

+0

你在哪裏搜索輸出文件out.txt – Ilya 2012-08-02 11:04:14

+0

我跑PROGRAMM,並且文件被創建在目錄中,其中從我開始上課?。主要 – Ilya 2012-08-02 11:05:01

2

您需要提供javac的完整路徑,exec將不會使用ath找到它爲您

+0

正是你通過什麼完整的路徑?我在考慮在這兩種情況下爲javac和java提供了一個完整路徑。我更新,如果我沒有理解你在錯誤的方式 - 抱歉 – Dinara 2012-08-02 10:44:03

+0

的完整路徑javac的,即C:\課程校文件\的Java \ JDK \ BIN \ javac的,或使用llya例子) – MadProgrammer 2012-08-02 10:47:30

+0

的事情是,javac的工程確定並創建test.class文件。問題是java。但我確實寫了javac的完整路徑。仍然無法獲得test.class運行 – Dinara 2012-08-02 10:59:48