Как открыть и просмотреть файл (аналогично двойному щелчку файла) с помощью Java - PullRequest
4 голосов
/ 20 октября 2011

Я хотел бы знать, чтобы знать код на Java, который поможет выполнить ту же операцию, что и двойной щелчок в любой ОС для файла, открывающего его, и, таким образом, позволит нам просматривать его содержимое, когда пользователь предоставляетрасположение файла на его / ее ПК.Любое предложение будет очень полезно, так как мне нужно, чтобы закончить заявку.

Ответы [ 3 ]

5 голосов
/ 20 октября 2011
2 голосов
/ 20 октября 2011

Я использовал следующий код. В Windows вы получите диалоговое окно открытия файла Windows, если ни одна программа не связана с типом файла. Если он не работает в Windows, он возвращается к Desktop.open(), который работает, если тип файла известен системе.

public static boolean openFile(File file){
  try {
    if (System.getProperty("os.name").contains("Windows")) {
      Runtime.getRuntime().exec(
          "rundll32 SHELL32.DLL,ShellExec_RunDLL " + file.getAbsolutePath());
    } else if (Desktop.isDesktopSupported()) {
      Desktop.getDesktop().open(file);
    } else {
      return false;
    }
    return true;
  } catch (final Exception e1) {
    System.err.println("Error opening file " + file, e1);
    return false;
  }
}
0 голосов
/ 10 сентября 2012

в Windows XP:

rundll32 shell32.dll,ShellExec_RunDLL "file:///d:\download\theapp.lnk"

Вы можете добавить реестр, чтобы запустить файл lnk в диалоговом окне RUN и в папке cruiser:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lnkfile\shell]

[HKEY_CLASSES_ROOT\lnkfile\shell\edit]

[HKEY_CLASSES_ROOT\lnkfile\shell\edit\command]
@="rundll32 shell32.dll,ShellExec_RunDLL \"file:///%1\""
...