使用Eclipse创建但不使用命令行创建的文件

时间:2014-10-01 16:32:36

标签: java command-line fileoutputstream printstream

我正在使用Java创建一个包含一些数据的文件。但是我遇到了一个问题。事实上,当我从Eclipse运行时,我成功创建了一个文件并在其中编写“hello”。但是当我在jar文件中导出该代码并尝试在命令行(java -jar myappli.jar)中执行它时,不会创建该文件。我不明白为什么。

这是我的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 个答案:

答案 0 :(得分:0)

如果您没有获得例外,则很可能正在创建。不同的是工作目录。由于您在调用新文件时未指定绝对路径,因此JVM将在JVM的当前工作目录中创建该文件。当您从jar运行时,与从Eclipse运行时的情况相比,这可能会有所不同。

答案 1 :(得分:0)

我看不出有什么特别错误,但请尝试将new File('Export_XML.xml')变成自己的变量,然后执行xmlFile.createNewFile();此外,我不鼓励使用System.setOut(),因为您的程序不是&#39 ;是Java使用它的唯一部分。