2016-04-10 29 views
2

Ich frage mich, ob es einen Weg gibt [nun] meine Java-Programm zu schreiben, ein USB-Laufwerk, ich habe einige Suche und fand die folgende Frage auszuwerfen: How Do I Eject a Volume in Java?In Java, wie man das Programm schreibt, um ein USB-Laufwerk auszuwerfen?

Es wurde gefragt, vor 6 Jahren, ohne Antwort, Gibt es einen Weg, es jetzt zu tun?

Ich muss es nur in Windows tun, wenn etwas in Mac funktioniert, wird es ein Plus sein.

+2

nicht mit dem Standard Bibliothek. Möglicherweise müssen Sie auf plattformspezifische Hacks zurückgreifen. Haben Sie ein bestimmtes Betriebssystem im Auge? – Joni

+0

In der Standard-Laufzeitbibliothek gibt es keine Routine. Sie müssen das zugrunde liegende Betriebssystem dazu auffordern. –

+0

Hier sind ein paar Windows-Befehlszeilen-Apps, verwenden Sie Process.execute, um es aufzurufen. http://stackoverflow.com/questions/206248/how-do-you-programmatical-eject-an-usb-mass-storage-device – Whome

Antwort

0

A litle späte Antwort, aber ich dachte, es war es wert ... Da die Standard-Java-API nicht mit dieser Funktion auf sie kommt, könnten Sie Externe Bibliotheken wie oben erwähnt, aber ich persönlich fand es viel bequemer (für Windows), eine Exe-Datei von Drittanbietern im Klassenpfad des Jars zu haben, entpacke sie im Temp-Ordner, führe sie bei Bedarf aus und entferne sie dann, sobald die Anwendung fertig ist damit. Als Drittprogramm verwendet i this die eine CLI nur Programm, das ein paar Tricks mit den angeschlossenen Geräten tun, und verwendet dann diesen Code:

FileUtils.copyInputStreamToFile(MyClass.class.getClassLoader().getResourceAsStream(program),TEMP_EJECT_PROGRAM); 

es in die temporäre Datei Speicherort zu exportieren (mit ApacheIO, Sie können definitiv darauf verzichten), und dieser Code:

, um das Laufwerk zu entfernen. Die obigen Code-Teile sind definitiv nicht für alle Anwendungen geeignet und die zweite ist im Speziellen nicht die beste, es gibt andere, viel bessere Möglichkeiten dies zu tun, als einen anonymen Thread hervorzubringen ... Immernoch bekommst du die Idee dahinter :)

Schließlich ich sugest Sie den Benutzer in geeigneter Weise informieren und für ihre concent fragen, bevor sie eine Software von Drittanbietern in ihre Maschine ausgeführt ...

ich hoffe, das war hilfreich :-)