2016-04-12 7 views
0

ausführen Ich brauche eine lokale notepad.exe von Spring-Anwendung ausführen. Kannst du mir bitte vorschlagen.Wie Sie die lokale Notepad.exe mit Spring Web-Anwendung

+1

Meinst du, dass der Code auf einem Webserver ausgeführt wird, aber Sie möchten eine ausführbare Datei auf meinem Computer (mit einem Browser) starten können? Eek, nein. Sie können eine Textdatei angeben und lassen Sie mich (der Benutzer) wählen, welche Anwendung, um das zu öffnen, aber das ist eine andere Sache. –

+1

Spring Desktop-App? oder Federsteg? Klingt ein bisschen komisch. – mlewandowski

+0

ja. Es ist eine Web-App. – Antony

Antwort

0

Sie können exec Methodenaufruf von der Runtime class verwenden. So:

Runtime.getRuntime().exec("c:\\path\\to\\the\\executable\\notepad.exe")); 

über documentation:

Führt den angegebenen String-Befehl in einem separaten Prozess. Dies ist eine Komfortmethode. Ein Aufruf der Form exec (Befehl) verhält sich genau so wie der Aufruf exec(command, null, null).

Aber IMHO macht es nur Sinn, wenn Sie Spring in der Desktop-App verwenden. Auf der Serverseite exec wird normalerweise verwendet, um nicht-GUI-ausführbare Dateien mit Befehlszeilenoptionen

0

Alle HTTP-Anfrage, die Sie, dass text/plain als Antwort erhält, und dass die Benutzer wählt "Öffnen" anstelle von "Speichern" oder "Speichern unter ..." löst die Ausführung der Notepad-Anwendung aus und zeigt die Antwort in dieser Anwendung an.

Also, wenn Sie zum Beispiel einen Link zu ...

<a href="http://your.server/your/application?foo=bar">Click me for a text file</a>

... und diese Web-Anwendung reagiert mit text/plain, sollte der Benutzer aufgefordert werden, um die Reaktion auf Öffnen oder Speichern. Wenn sie Öffnen auswählen, sollte die Anwendung Notepad geöffnet werden.

+0

Was ist, wenn der Editor nicht als Standardanwendung zum Öffnen von Textdateien ausgewählt ist? das ist eigentlich ein ziemlich interessantes Problem - um eine Ressource in einer bestimmten App zu öffnen, wenn diese Ressource angefordert wird – mangusta

+0

Sie haben überhaupt keine Kontrolle darüber. Sie müssen sich daran erinnern, dass eine Webanwendung - HTML, CSS und Javascript - stark sandboxed ist. Sie, als Webentwickler, sollen diese Art der Kontrolle über den Computer des Benutzers nicht haben. Es ist nur durch ** convention **, dass 'text/plain' auf jede Anwendung gerichtet ist, die gerade registriert ist, um mit 'text/plain'-Anfragen umzugehen. Standardmäßig ist das Notepad.exe, aber der Benutzer kann es sehr gut ändern. Und es gibt nichts, was Sie als Webentwickler tun können, um es durchzusetzen. Dies ist beabsichtigt und vollständig beabsichtigt. – MichaelK

Verwandte Themen