Comment puis-je ouvrir un fichier avec le programme associé par défaut en Java? (par exemple un fichier vidéo)
Réponses
Trop de publicités?Vous pouvez utiliser Desktop.getDesktop().open(File file)
. Voir la question suivante pour d'autres options: "[Java] Comment ouvrir le système de l'utilisateur ouve éditeur de fichier donné?"
Pour freiner l'enthousiasme à propos de Desktop.getDesktop()
ouvrir et de parcourir les méthodes - ils ne sont utilisables que pour le plus simple des scénarios. Il n'y a aucune façon comment faire:
- Ajouter des paramètres supplémentaires pour l'application, comme les autres, puis sélectionnez
profil par défaut pour le navigateur (comme
firefox -p test_profile
) - Comment communiquer avec l'application après le lancement, pas de PID retourné, pas d'accès à la norme d'entrée ou de sortie du processus.
- Pour vérifier que l'application associée est vraiment (ce que le navigateur de l'utilisateur utilise)
-
Desktop.getDesktop().browse(URI)
pouvez modifier l'URI sans possibilité de l'influencer. Au lieu defile:/C:/temp/embedded_js_app.html?mode=test
navigateur s'ouvre pas la raison"file:/C:/temp/embedded_js_app.html
qui n'est PAS le même pour moi. Vous pouvez vous attendre à plus de manigances de ce genre.
Desktop.getDesktop()
, et le sous-jacent WDesktopPeer
et ShellExecute
, est un mauvais, très rudimentaire cadre, loin d'être vrai bureau de l'intégration. C'est pourquoi Java perdu de son bureau public :(
SwingHacks a une solution pour les anciennes versions de Java.
Je pense qu'ils ont utilisé l'objet d'Exécution pour exécuter la commande 'start' sur windows et il y a une commande similaire sur le mac.