39 votes

Passage des arguments de la ligne de commande au JAR EXÉCUTABLE

J'ai construit un POT exécutable à partir d'un projet Eclipse qui traite un fichier XML donné et en extrait le texte brut. Cependant, cette version nécessite que le fichier soit codé en dur dans le code.

Y a-t-il un moyen de faire quelque chose comme ça

java -jar wiki2txt enwiki-20111007-pages-articles.xml

et faire exécuter le JAR sur le fichier xml ?

J'ai regardé autour de moi, et tous les exemples donnés ont trait à la compilation du POT sur la ligne de commande, et aucun ne traite du passage d'arguments.

44voto

Kal Points 14230

Pourquoi pas ?

Modifiez simplement votre Main-Class pour recevoir des arguments et agir sur l'argument.

public class wiki2txt {

    public static void main(String[] args) {

          String fileName = args[0];

          // Use FileInputStream, BufferedReader etc here.

    }
}

Spécifiez le chemin complet dans la ligne de commande.

java -jar wiki2txt /home/bla/enwiki-....xml

5voto

laguille Points 637

Vous pouvez passer des arguments de programme sur la ligne de commande et les obtenir dans votre application Java comme ceci :

public static void main(String[] args) {
  String pathToXml = args[0];
....
}

Vous pouvez également passer une propriété système en changeant la ligne de commande pour :

java -Dpath-to-xml=enwiki-20111007-pages-articles.xml -jar wiki2txt

et votre classe principale pour :

public static void main(String[] args) {
  String pathToXml = System.getProperty("path-to-xml");
....
}

0voto

eppesuig Points 482

Lorsque vous exécutez votre application de cette façon, l'excecable java lit le MANIFESTE à l'intérieur de votre bocal et trouve la classe principale que vous avez définie. Dans cette classe, vous avez une méthode statique appelée main. Dans cette méthode, vous pouvez utiliser les arguments de la ligne de commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X