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 に答える