2014-10-01 95 views
0

我正在使用Java創建一個包含一些數據的文件。但是我遇到了一個問題。事實上,當我從Eclipse運行時,我成功創建了一個文件並在其中寫入「hello」。但是,當我將這些代碼導出到jar文件中時,我嘗試在命令行(java -jar myappli.jar)中執行它,則不會創建該文件。我不明白爲什麼。用Eclipse創建的文件但不能用命令行創建的文件

這是我的java文件,很簡單。

如果您有任何答案,我會很樂意擁有它:) 謝謝。

package testjar; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.PrintStream; 

public class Main { 
public static void main(String[] args) 
{ 
    FileOutputStream f = null; 
    try 
    { 
     f = new FileOutputStream(new File("Export_XML.xml")); 
     System.setOut(new PrintStream(f)); 
     System.out.println("hello"); 
    } 
    catch(java.io.IOException e) 
    { 
     e.printStackTrace(); 
    } 
    finally 
    { 
     try 
     { 
       if(f!=null) 
         f.close(); 
     } 
     catch(IOException e) {e.printStackTrace();} 
    } 
} 
} 
+2

在命令行上運行它時是否收到異常?你如何運行它?任何編譯警告? – Burkhard 2014-10-01 16:35:13

+0

你是從命令行運行它嗎?如果沒有,你應該這樣做。如果是這樣,你會得到什麼樣的錯誤信息? – ControlAltDel 2014-10-01 16:36:34

回答

0

如果你沒有收到異常,它很可能被創建。不同的是工作目錄。由於在調用新文件時沒有指定絕對路徑,因此JVM將在JVM的當前工作目錄中創建文件。當你從jar中運行時,這與你從Eclipse運行時的情況可能會有所不同。

0

我看不出有什麼具體錯誤,但嘗試使new File('Export_XML.xml')到它自己的變量,然後做xmlFile.createNewFile();另外,我不鼓勵使用如System.setOut()你的程序是不是Java的只是部分使用它。