2009-05-11 7 views
8

Je veux lancer un fichier (un document) à partir d'un programme Java et d'éliminer progressivement les exigences suivantes:fichier de lancement de Java

  • méthode doit être applicabale sur Mac, systèmes Win et Linux
  • Je ne suis pas autorisé à utiliser "Runtime.getRuntime(). exec (" cmd.exe/C + "filename");
  • Le fichier que je lance a besoin d'être soit .doc/.docx/.rtf

Le fichier est créé l'exécution, un résultat d'un rapport en cours de création. Des bonnes pratiques?

+0

Je ne suis pas sûr de comprendre ce que signifie lancer un fichier ... avez-vous une contrainte concernant le programme d'ouverture du fichier? voulez-vous lancer une application particulière avec votre fichier ouvert? Êtes-vous sûr que toutes les machines sur lesquelles vous exécutez votre programme auront un programme supportant les fichiers .doc? – LB40

+0

Lancer, dans ce contexte, signifie ouvrir le fichier avec le programme associé. Oui, j'ai une garantie d'avoir un programme supportant .doc –

Répondre

4

Si vous exécutez la version 1.6, utilisez l'API Desktop comme indiqué par mad-j. Si vous utilisez une ancienne machine virtuelle (version 1.5 ou antérieure), vous devrez écrire votre propre code spécifique à la plate-forme pour cela.

Sur Mac,

Runtime.getRuntime().exec(new String[] {"open", pathToFile}); 

Sur les fenêtres,

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/C", pathToFile}); 

Vous devrez peut-être échapper à la voie sur les fenêtres.

+0

Il a dit qu'il ne peut pas utiliser cmd.exe –

+0

Il doit y avoir quelqu'un qui a écrit une classe utilitaire pour JVM pré-1.6 ....? –

Questions connexes