10
votes

Comment exécuter un fichier de lot de Java?

Je veux exécuter un fichier de commandes d'un programme Java.

J'utilise la commande suivante. P>

com
   |
  project
   |
   ------ parser
   |         |_____ Main.java
   |
   -------util
             |_____ Server.bat


0 commentaires

7 Réponses :


7
votes

Vous devez exécuter "cmd.exe" avec les arguments "/ c" et "serveur.bat": xxx


0 commentaires

8
votes

Vous pouvez utiliser ProcessBuilder pour cela. Il fournit beaucoup plus de contrôle que EXEC . En particulier, il permet de définir un répertoire de travail avec la méthode .

exemple: xxx

Bien sûr, votre application doit être déployée quelque part. Il peut être défini dans l'environnement, dans le fichier de configuration de l'application, il peut s'agir d'un répertoire utilisateur actuel ou de quelque chose d'autre.


0 commentaires

5
votes

Lorsque Java est en cours d'exécution et que vous utilisez Runtime.Exec () avec un chemin relatif, des moyens relatifs par rapport à la direction actuelle de l'utilisateur, où la JVM a été invoquée.

Ceci peut fonctionner P>

Runtime.getRuntime().exec("cmd.exe", "/c", 
System.getProperty("user.dir")+"/com/projct/util/server.bat");


4 commentaires

Il n'y a pas de méthode "EXEC" dans la classe d'exécution qui prend trois paramètres de chaîne.


C'est vrai. Je veux dire la chaîne [] version [], mais je ne suis pas en mesure d'entrer des parenths carrés dans la zone de texte SO ... Je pense que je dois lire des manuels / wiki ...


Disons que j'ai trois commandes censées être exécutées à partir de CMD, puis trois fenêtres de CMD séparées seront ouvertes pour chacune des commandes, y a-t-il une manière que je peux exécuter les trois commandes sur une fenêtre CMD.


@Viveksinghgits lire ici: Stackoverflow.com/Questtions/8055371/...



0
votes

Utils plexus fournit un Type de commande pouvant invoquer une ligne de commande arbitraire et manipuler l'analyse de la sortie. xxx


0 commentaires

0
votes

Vous êtes meilleur choix consiste à stocker le répertoire d'installation de l'application sur le système, puis à utiliser pour créer vos chemins dans l'application. System.geProperty ("user.dir") doit fonctionner sur des plates-formes Windows et UNIX pour obtenir le répertoire de travail actuel, mais le système dépend du système en être au courant.


0 commentaires

0
votes

Le deuxième paramètre à exécuté est une chaîne [] de Args pour les paramètres de l'environnement (NULL signifie hériter du processus 'actuel) et le troisième paramètre à exécuté doit être un fichier fournissant le répertoire de travail. Essayez ceci: xxx


0 commentaires

5
votes

Vous pouvez l'essayer avec le bureau si pris en charge (Java 1.6)

    File file = new File("server.bat");
    Desktop.getDesktop().open(file);


1 commentaires

C'est le seul qui fonctionne parfait pour moi! Merci