我需要找出Windows上給定文件的默認文件打開器,以便我可以自定義命令參數並使用默認的打開器/查看器打開文件。如何使用Java找出默認文件開啓器?
我的實際使用情況是打開多個多媒體文件與用戶的默認媒體播放器,使所有的文件將被添加到用戶的播放列表(對於可以在同一個intance打開多個文件的播放器)。對於非Windows操作系統,我用Desktop.open(File file)
方法(我根本就不關心打開多個文件功能的操作系統Windows以外),我找不到,我可以打開手機,定製命令參數和使用EXEC運行它的其他多個文件的任何方法()運行時類的方法。我用somethig與此類似:
private void playItems2(List<File> fileList, String playerBinary) {
String args = " ";
for (File file : fileList) {
args += "\"" + file.getAbsolutePath() + "\" ";
}
try {
String command = playerBinary + args;
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(command);
} catch (Exception exc) {/*handle exception*/
System.err.println("Run Player Exc:" + exc.getMessage());
}
}
我使用用戶指定的路徑爲playerBinary
,我需要什麼,以自動檢測默認播放器的fileList
的第一個項目,並以此爲playerBinary
。
我也看着的Rundll32.exe和cmd.exe /start解決方案,但他們並沒有對我的使用場景的工作。
如果您只是在尋找Windows,那麼就沒有純Java的方法來做到這一點。閱讀註冊表或使用第三方庫。 – cx0der 2010-02-06 02:20:18