1

我需要我的 java 代码来打开基于默认应用程序的文件。感谢 如何为给定文件打开用户系统首选编辑器?这提出了一种质量方法来做到这一点

Runtime.getRuntime().exec("RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL "+file);

但问题是,一旦我选择应用程序打开它,它就不会打开文件。我不知道它的原因。

谢谢

编辑:

Desktop.getDesktop().open(file);

这将在默认应用程序中打开。我希望用户选择应用程序来打开它

4

1 回答 1

5

采用 :

Desktop.getDesktop().open(file);

http://docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html#open(java.io.File )

编辑:

这是使您的命令工作的代码:

import java.io.File;
import java.io.IOException;

public class TestExec {

    public static void main(String[] args) throws IOException, InterruptedException {
        File file = new File("d:/Clipboard1.png");
        ProcessBuilder builder = new ProcessBuilder("RUNDLL32.EXE", "SHELL32.DLL,OpenAs_RunDLL", file.getAbsolutePath());
        builder.redirectErrorStream();
        builder.redirectOutput();
        Process process = builder.start();
        process.waitFor();
    }

}
于 2012-10-30T10:29:05.957 回答