【问题标题】:how do i open and run(execute) a file at java?我如何在 java 中打开和运行(执行)文件?
【发布时间】:2010-11-09 08:35:32
【问题描述】:

我正在尝试开发一个为特殊任务复制 .csv 的 j2se 程序。 现在我想运行(执行)复制的 .csv 文件。

如果复制的路径是 "C:\program files\reports\test.csv"C:\Documents and Settings\User\My Documents\test.csv" 它不适用于此代码:

run.exec("cmd start /c C:/Documents and setting\user\My Documents\test.csv");

对于这段代码:

如果路径是从 JTextField 或 JFileChooser 中获取的,它是如何工作的?

请注意,在本程序运行过程中,用户可以设置自己的特殊路径。

谢谢你的回答。

【问题讨论】:

    标签: file csv java


    【解决方案1】:

    如果可能,您应该使用 Java 6 中引入的 Desktop 类:

    Desktop.getDesktop().open(new File(filename));
    

    分离命令的问题更少,并且独立于平台。

    【讨论】:

    • +1。忘了那个。无论如何,保留我对 pre Java-6 的回答
    【解决方案2】:

    尝试在路径周围添加引号,或者使用正斜杠,或者使用双反斜杠:

    Runtime.getRuntime().exec(
        "cmd start /c \"C:/Documents and setting/user/My Documents/test.csv\"");
    

    更新:使用 Michael 的 Java 6 解决方案。

    【讨论】:

    • 我觉得应该是...My Documents/test.csv...而不是...My Documents\test.csv...
    • @danoo - 它也可能是 File.separator :)
    • 是的,那是另一个话题。使用正斜杠很好,因为 Sun JVM 正在规范化路径,尽管 File.separator 更可取。
    • 参数不是按原样传递给cmd.exe吗? JVM 怎么知道它是一条路径?我很确定是 cmd.exe 在施展魔法(如果在命令行窗口 {XP} 中启动就可以正常工作)。
    • @mahdi - 不。您必须添加引号。
    猜你喜欢
    • 2014-08-15
    • 2014-03-08
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 2012-09-23
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多