【问题标题】:Java open live file at runtimeJava 在运行时打开实时文件
【发布时间】:2012-09-23 23:38:06
【问题描述】:

我有一个数据表,我想要一个导出功能,这个应用程序在网络上运行,所以我想创建一个 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 中自动打开,我希望选择保存或打开。

【问题讨论】:

    标签: java csv runtime filewriter


    【解决方案1】:

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

    【讨论】:

    • 确实,exac 是我过去在服务器上做过类似事情的一种方式,我认为它不正确。谢谢。您是否知道将文件连同内容处置标头一起写回浏览器的任何好的示例。
    【解决方案2】:

    你应该试试

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

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

    【讨论】:

    • java.io.IOException: Cannot run program "excel.exe": CreateProcess error=2, The system cannot find the file specifiedDEBUG
    • Dos 提示符下尝试使用程序文件中的固定路径。那时它将不在路径中。我在 Ubuntu 上,否则我可以自己尝试。如果它适用于Dos prompt,那么它适用于exec
    • 我不希望它在 excel 中自动打开,我只想下载 csv 文件,我不能使用固定路径,因为它是一个 Web 应用程序并且独立于特定机器。
    • Runtime.getRuntime().exec() 永远不会帮助您下载文件。如果您正在编写 Web 应用程序,那么它会以不同的方式完成。您可以参考here 上的教程。
    • 您可以使用此How to download file from website- Java / Jsp 了解如何操作。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-12-07
      • 1970-01-01
      • 2014-08-15
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多