2012-10-30 83 views
1

我需要我的java代碼來打開基於默認應用程序的文件。由於 How to open user system preferred editor for given file?它通過讓用戶選擇應用程序來打開文件

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

表明質量的方法做它,但問題是,一旦我選擇應用程序打開它,它不會打開該文件。我不知道它的原因。

感謝

編輯:

Desktop.getDesktop().open(file); 

這在默認應用程序中打開。我希望用戶選擇的應用程序來打開它

回答

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(); 
    } 

} 
+0

這會在默認應用程序中打開。我希望用戶選擇應用程序來打開它 – Jatin

+1

@Jatin:您的標題說:「從默認應用程序打開文件」。這就是它所做的。 –

+0

我很抱歉混淆。 – Jatin

相關問題