2017-07-26 2 views
0

J'ai un code java que j'utilise pour ouvrir un fichier:fichiers d'ouverture Java - Eclipse travaille à partir, ne fonctionne pas dans runnable JAR/exe

Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + output.getAbsolutePath()); 

Il fonctionne très bien quand je l'exécute Cependant, à partir d'Eclipse, lorsque j'exporte le projet dans un fichier JAR exécutable, la fonctionnalité cesse de fonctionner. J'ai essayé différentes options pour ouvrir le fichier (Desktop.open, ProcessBuilder, etc.) avec les mêmes résultats (Eclipse OK, JAR exécutable non).

Ce code exact fonctionnait précédemment lorsque je l'ai exporté dans le passé (il y a 1,5 ans). Je crois que c'était avec Java 1.6 et maintenant nous sommes sur Java 1.7. Je ne sais pas si c'est la raison et je n'ai pas l'option de compiler en utilisant les versions précédentes de Java. Des idées?

+0

Pourriez-vous publier les exceptions que vous obtenez si c'est possible? –

+0

L'exécutez-vous sur la même machine? –

+0

J'éviterais d'utiliser la dll complètement: Java est exécuté n'importe où, de cette façon vous êtes lié à MS Windows et peut-être même une version de cela pour le voir fonctionner. –

Répondre

0

Merci d'avoir essayé d'aider. J'ai compris la réponse qui est tout simplement que je suis un idiot :) Ouverture du fichier n'était pas le problème, le fichier n'était pas écrit en premier lieu, et la raison pour laquelle il n'était pas écrit était tout simplement car le code a été défini pour l'écrire dans une structure de dossiers imbriquée qui n'a pas encore été créée. Je n'ai même pas pensé à cela parce que je supposais que tous les dossiers nécessaires spécifiés dans la chaîne de sortie seraient créés automatiquement. Doh!