2009-06-26 8 views
4

Comment puis-je "éjecter" un volume avec Java, multi-plateforme? J'ai un programme qui effectue certaines opérations sur un lecteur amovible (lecteur de carte mémoire USB), et une fois que c'est fait, je veux que le programme éjecte/démonte/enlève (selon le langage dans lequel nous parlons) le carte mémoire.Comment éjecter un volume en Java?

Existe-t-il une méthode multiplateforme fiable pour ce faire?

Répondre

2

Probablement est pas la réponse que vous cherchez, mais ...

n °

A ma connaissance, il n'y a pas un moyen unique plate-forme établie de le faire. D'ailleurs, je n'ai jamais rencontré une manière Java de le faire. Un rather scary C# CodeProject permet d'éjecter des périphériques, mais uniquement sous Windows.

Les bibliothèques Java USB ne font même pas allusion aux périphériques d'éjection des fichiers various, depressingly poor. Ils ne fonctionnent pas sur toutes les plateformes, donc même s'ils le faisaient, cela ne vous aiderait pas. Ma suggestion: récupérez des scripts ou des exécutables pour chaque plate-forme, puis lancez simplement un Processus selon vos besoins.

+0

Ou enveloppez un code spécifique au système d'exploitation dans JNI. Mais je suis sûr que c'est la "voie difficile". –

+1

Je considérerais JNI uniquement si la performance est importante. Si 'éjecter usb' est dans une boucle interne quelque part, cela pourrait en valoir la peine. Là encore, cela soulèverait ... des questions intéressantes. –