2015-07-10 74 views
1

我有下面的類:遇到問題通過getRuntime運行我的程序()在Java中

編譯我的CreateTexts.java下課後,我想通過getRuntime運行它(通過Eclipse中調用它)。所以我跑這個類

public class RuntimeDemo { 

    public static void main(String[] args) { 
    try { 

    // create a new array of 2 strings 
    String[] cmdArray = new String[2]; 

    // first argument is the program we want to open 
    //C:\Program Files\Java\jdk1.6.0_20\bin 
    cmdArray[0] = "C://Program Files//Java//jdk1.6.0_20//bin//java"; 

    // second argument is a txt file we want to open with notepad 


    cmdArray[1] = "C://logback//CreateTexts"; 



    // create a process and execute cmdArray and currect environment 
    Process process = Runtime.getRuntime().exec(cmdArray,null); 


    } catch (Exception ex) { 
    ex.printStackTrace(); 
    } 

    } 
} 

但我沒有看到輸出文件被創建。任何提示appareciated謝謝

+0

我相信我需要使用ProcessBuilder類,而不是這種方式 – Coffee

+0

爲什麼不簡單地在jthis代碼中調用批處理文件,讓批處理文件執行運行'CreateTexts'代碼的工作? – Arvind

回答

1

你運行程序的方式是錯誤的。

假設您CreateTexts在包logback內。該文件位於"C://logback//CreateTexts",然後您必須cdC:,然後執行程序java logback.CreateTexts

只是直接從任何目錄使用絕對路徑調用文件不會工作。

+0

嗯,但我怎麼能夠從Eclipse(這是在一些隨機目錄中)編譯它? – Coffee

+0

或者我猜這是一個Java安全機制或smth? – Coffee

+0

http://stackoverflow.com/questions/3415507/how-can-i-compile-and-run-a-java-class-in-a-different-directory - 我認爲這澄清 – Coffee