2012-09-04 72 views
1

我正在通過cmd中的以下命令從類文件創建jar文件。工作正常。由processbuilder創建jar時出現故障

C:\>cd \GenClass 
C:\>path c:\Program Files\Java\jdk1.5.0_09\bin;%path% 
C:\>echo Main-Class: myjar >manifest.txt 
C:\>jar cvfm myjar.jar manifest.txt proxy/*.class 

但是我在processbuilder中失敗了。

ProcessBuilder pb1= new ProcessBuilder("cmd.exe", "/C", "jar cvfm contactproxy.jar manifest.txt proxy/*.class"); 
    pb1.directory(new File("D:\\GenClass")); 
    pb1.environment().put("CLASSPATH", "D:\\java\\jdk1.5.0_14\\bin"); 

    java.lang.Process p1 = pb1.start(); 
    String line1; 
    BufferedReader r1 = new BufferedReader(new InputStreamReader(p1.getInputStream())); 
    while ((line1 = r1.readLine()) != null) { 
    System.out.println(line1); 
    } 
    r1.close(); 

jar無法創建。 我在做什麼錯?

+0

從p1.getErrorStream()中更好地打印以查看發生了什麼問題。 –

+0

錯誤說'jar.exe'不被識別爲內部或外部命令。我想我無法正確設置類路徑。 –

+0

PATH和CLASSPATH是不同的東西。使用命令行時,設置PATH,但在使用流程構建器時,請設置CLASSPATH。 –

回答

0

代替「jar.exe」,寫出從c:\ java開始的完整路徑。