2009-06-26 8 views
4

Wie kann ich ein Volume mit Java "plattformübergreifend" "auswerfen"?Wie kann ich ein Volume in Java auswerfen?

Ich habe ein Programm, das einige Operationen auf einem Wechseldatenträger (USB-Speicherkartenleser), und sobald es fertig ist, möchte ich das Programm auswerfen/unmounten/entfernen (je nachdem, welchen os Jargon wir sprechen) Speicherkarte.

Gibt es eine zuverlässige plattformübergreifende Methode, dies zu tun?

Antwort

2

Wahrscheinlich ist nicht die Antwort, die Sie suchen, aber ...

Nr

Meines Wissens gibt es keine etablierte Single-Plattform Art und Weise, dies zu tun. In dieser Hinsicht habe ich noch nie einen Java-Weg gefunden. A rather scary C# CodeProject erlaubt das Auswerfen von Geräten, aber nur unter Windows.

Die Java-USB-Bibliotheken various, depressingly poor weisen nicht einmal auf auswerfende Geräte hin. Sie funktionieren nicht über alle Plattformen hinweg, also selbst wenn sie es tun würden, würde es dir nicht helfen.

Mein Vorschlag: gin up einige Skripte oder ausführbare Dateien für jede Plattform, und dann nur einen Prozess nach Bedarf.

+0

Oder wickeln Sie einige Betriebssystem-spezifischen Code in JNI. Aber ich bin sicher, das ist der "harte Weg". –

+1

Ich würde nur JNI betrachten, wenn Leistung wichtig ist. Wenn "USB auswerfen" irgendwo in einer inneren Schleife ist, könnte es sich lohnen. Andererseits würde das ... interessante Fragen aufwerfen. –