Java在运行时打开实时文件

时间:2012-10-03 04:12:15

标签: java csv runtime filewriter

我有一个数据表,我想要一个导出功能,这个应用程序在网络上运行,所以我想创建一个csv文件,然后提供(打开或保存为选项)通常的下载选项。我现在正在使用CSV编写器 这里有问题的行是Runtime.getRuntime().exec("export.csv");在底部列出的错误 我该怎么做?

以下是与按钮绑定的操作

Action exportData = new Action() {
    private static final long serialVersionUID = -7803023178172634837L;

    @Override   
    public void execute(UIContext uic, ActionEvent event) {

        try{       
            CSVWriter writer = new CSVWriter(new FileWriter("export.csv"), '\t');
            int i = 0;
            while (i < forExport.getTotalCount()){
                String[] entries = {
                    forExport.getSearchResults().get(i).getName().getGivenNames() + forExport.getSearchResults().get(i).getName().getSurname(),
                    forExport.getSearchResults().get(i).getId()
                };
                writer.writeNext(entries);
                i++;
            }  
            writer.close();
            Runtime.getRuntime().exec("export.csv");  
        }catch(Exception e){
            system.out.print(e);
        }
    }
};

收到错误java.io.IOException: Cannot run program "export.csv": CreateProcess error=193, %1 is not a valid Win32 applicationDEBUG

注意:我不希望它在Excel中自动打开,我想要保存或打开选项。

3 个答案:

答案 0 :(得分:1)

我不明白为什么你要执行任何事情。这是服务器代码。您根本不想在服务器上执行Excel。您希望将文件与内容处置标头一起写回浏览器。

答案 1 :(得分:0)

你应该试试

Runtime.getRuntime().exec("excel.exe export.csv"); 

export.csv不是有效的Windows命令。

答案 2 :(得分:0)

<。> .csv文件是逗号分隔值文件,用于保存数据。 exec命令的参数是作为字符串的命令,用于打开.csv文件。但是在您的命令字符串中,您没有指定运行时应尝试打开.csv文件的任何程序。

由于.csv文件不可执行,在命令字符串参数中指定要打开..csv文件的程序名称。