2016-12-15 2 views
0

Ich weiß, dass wir die Bearbeitung für eine Bilddatei e.t.c mit Java öffnen kann, und hier ist mein Beispiel:Java - Wie bearbeitet man eine Datei mit einem bestimmten Programm?

File file = new File("c:\\Users\\Aleksa\\Desktop\\Logo.png"); 
Desktop.getDesktop().edit(file); 

Nun, ich möchte wissen, wie öffne ich eine bestimmte App, die Datei zu bearbeiten. Zum Beispiel überprüft Java, ob ich "Abdobe PhotoShop" habe, und wenn ich das tue, öffnet die Datei im Photoshop, nicht in der Farbe, wie es tut. Und Weg, um einen bestimmten Editor zum Bearbeiten einer Datei zu öffnen?

-Danke zum helfen.

+0

Das hängt von der App ab, aber * normalerweise * Sie führen die ausführbare Datei aus und geben die zu öffnende Datei als Argument an, z. '" C: \ Programme (x86) \ Notepad ++ \ notepad ++ .exe "" C: \ Benutzer \ Salmeh \ Desktop \ hello.txt "'. Was die Ausführung eines Programms aus Java betrifft, gibt es viele Beispiele im Web. – Andreas

+0

Okay, Danke für Ihre Hilfe. –

Antwort

1

von https://docs.oracle.com/javase/tutorial/uiswing/misc/desktop.html:

„Das Desktop-API verwendet das Host-Betriebssystemes des Dateizuordnung zum Starten von Anwendungen im Zusammenhang mit bestimmten Dateitypen Wenn zum Beispiel OpenDocument- Text (ODT) Dateierweiterungen mit dem Openoffice Writer zugeordnet sind. Anwendung, eine Java-Anwendung könnte OpenOffice Writer starten, um Dateien mit dieser Zuordnung zu öffnen, zu bearbeiten oder sogar auszudrucken .. Je nach Host-System können verschiedene Anwendungen mit verschiedenen Aktionen verknüpft sein.Wenn beispielsweise eine bestimmte Datei nicht gedruckt werden kann, überprüfen Sie zuerst ob seine Erweiterung eine Druckverknüpfung auf dem gegebenen Betriebssystem hat. "

Ich glaube nicht, dass Sie solche Verbindung von Java ändern können, und wenn Sie könnten, würde es wahrscheinlich auch Ihr Betriebssystem beeinflussen.

TL; DR: Wenn Sie mit der Standard-OS-App öffnen möchten, verwenden Sie Desktop.open(). Wenn Sie mit einem benutzerdefinierten Editor öffnen möchten, rufen Sie den Editor explizit auf, z. B. mit Runtime.exec().

+0

Runtime.exec wurde vor vielen Jahren durch ProcessBuilder ersetzt. – VGR

Verwandte Themen