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 :-)
nicht mit dem Standard Bibliothek. Möglicherweise müssen Sie auf plattformspezifische Hacks zurückgreifen. Haben Sie ein bestimmtes Betriebssystem im Auge? – Joni
In der Standard-Laufzeitbibliothek gibt es keine Routine. Sie müssen das zugrunde liegende Betriebssystem dazu auffordern. –
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