/ / So erhalten Sie eine Standardanwendung für die Erweiterung in Windows [Java] - Java, Windows, Laufzeit, Exec

So erhalten Sie die Standardanwendung für die Erweiterung in Windows [Java] - Java, Windows, Runtime, Exec

Ich habe versucht zu verwenden

Runtime.getRuntime().exec("Here_I_am.txt");

Aber erhalte einen Fehler, der das sagt Here_I_am.txt ist keine Win32-Anwendung.

Ich sollte also wissen, welches Programm ausgeführt wird, wenn der Benutzer einfach auf klickt .extension Datei.
Wie standardmäßig für txt es wird sein Notepad.exe.
Also - wie kann ich diese Informationen bekommen?

P.S.
Ich bin sicher, dass diese App unter Linux nicht verwendet wird.

Antworten:

1 für die Antwort № 1

Sie müssen es über die Befehlsshell aufrufen:

Runtime.getRuntime().exec("cmd /c Here_I_am.txt");

1 für die Antwort № 2

Sie könnten verwenden Desktop.open(File)1. Wenn Sie die in einem bestimmten Ordner (wie dem Home-Verzeichnis) abrufen müssen, können Sie auch hinzufügen System.getProperty("user.home"). So etwas wie,

File file = new File(System.getProperty("user.home"), "Here_I_am.txt");
try {
System.out.printf("File path %s%n", file.getCanonicalPath());
Desktop.getDesktop().open(file);
} catch (IOException e) {
e.printStackTrace();
}

1Welches hat das kleine Vorteil dass es unter Windows, Linux und Mac funktioniert. Siehe auch Integrieren in die Desktopklasse.