Exécuter le fichier de commandes à partir de Java

__Remarque: cet article a été confirmé dans l'environnement suivant. __


Supposons que vous ayez helloworld.bat dans un dossier appelé C: \ sample. Le contenu est le suivant.

helloworld.bat


@echo off
echo Hello World 01
echo Hello World 02
echo Hello World 03

Vous trouverez ci-dessous un exemple d'exécution de ce helloworld.bat depuis Java.

//Générer ProcessBuilder
// helloworld.Connectez stdin et stderr de bat aux stdin et stderr du processus parent.
var processBuilder = new ProcessBuilder("C:\\sample\\helloworld.bat");
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);

//Génération de processus
// helloworld.Exécutez bat en tant que processus enfant et arrêtez le thread parent jusqu'à la fin de l'exécution du processus.
var process = processBuilder.start();
process.waitFor();

Lorsque vous faites cela, vous devriez voir quelque chose comme ce qui suit dans la sortie standard de Java:

Hello World 01
Hello World 02
Hello World 03

__ Personnellement, le point "addicted" est l'extension du fichier batch. L'extension du fichier que vous souhaitez exécuter doit être bat ou cmd. __

Dans le monde des scripts dits shell, il n'y a aucune spécification pour l'extension du fichier dans lequel le script est écrit. Je pense qu'il est habituel d'utiliser sh, mais tant que vous avez l'autorisation d'exécution, vous pouvez exécuter txt ou html, et il n'y a pas de problème même s'il n'y a pas d'extension.

D'autre part, dans le monde Windows, les extensions sont utilisées pour déterminer si un fichier est un fichier batch. En d'autres termes, si l'extension est bat ou cmd, ce fichier est considéré comme un fichier batch exécutable.

Ce à quoi j'étais accro était "J'ai essayé d'exécuter un fichier sans extension bat ni cmd avec ProcessBuider ou Process et cela n'a pas fonctionné ". Je suis un soi-disant développeur d'applications ouvertes. Dans ce monde (c'est-à-dire Linux et Unix), si l'autorisation d'exécution est donnée correctement, elle peut être exécutée quelle que soit l'extension, il est donc difficile de penser qu'il est nécessaire de spécifier une extension spécifique. Je n'ai pas (´ ・ ω ・ `)

Recommended Posts

Exécuter le fichier de commandes à partir de Java
Exécuter un lot avec docker-compose avec Java batch
[Java] Créer un fichier temporaire
Comment passer d'Eclipse Java à un fichier SQL
Java11: exécuter le code Java dans un seul fichier tel quel
Exécuter des applications Java dans Azure Batch
Télécharger des fichiers à l'aide de Java HttpURLConnection
Exécutez node.js depuis Android Java (traitement)
Exécuter R à partir d'un processus Java optimisé par Tomcat sur Amazon Linux
Accéder à Teradata depuis une application Java
Essayez d'exécuter Kubernetes Job à partir de Java
Pourquoi Java appelle-t-il un fichier une classe?
Deep Learning Java from scratch 6.3 Normalisation par lots
Si une personne de Java apprend PHP
Comment exécuter un fichier GIF à partir de la ligne de commande Linux (Ubuntu)
création de fichier java
GetInstance () à partir d'une classe @Singleton dans Groovy à partir de Java
Exécuter Rust depuis Java avec JNA (Java Native Access)
Lire une chaîne dans un fichier PDF avec Java
Exécuter R à partir de Java Je veux exécuter rJava
Connectez-vous à Aurora (MySQL) depuis une application Java
Pour devenir programmeur VB.net depuis une boutique Java
Les débutants en programmation apprennent PHP à partir d'une perspective Java-variables-
Histoire d'essayer de faire fonctionner le fichier JAVA
Générer un fichier java à partir d'apk (expression de la visionneuse de bytecode)
Créer Scala Seq à partir de Java, faire de Scala Seq une liste Java
Un fichier bat qui utilise Java dans Windows
[Java] Récupère des valeurs de manière aléatoire dans un tableau
Application Java CICS-Run - (1) Exécutez un exemple d'application simple
Connexion SSH à l'aide de SSHJ à partir de l'application Java 6
[Java] Créons un Minecraft Mod 1.14.4 [0. Fichier de base]
[Java] Fonctionnement du système de fichiers
Appeler Java depuis JRuby
Soumettre une tâche à AWS Batch avec Java (Eclipse)
Changements de Java 8 à Java 11
Somme de Java_1 à 100
Etudier java8 (comme lire des fichiers à l'aide de Stream)
[Java] Créer un filtre
[Spring] Lire un message à partir d'un fichier YAML avec MessageSource
java (fichier source fractionné)
[Java] Comment extraire le nom du fichier du chemin
Évaluer la source Java à partir de Java
Exécutez PostgreSQL sur Java
Appeler une méthode avec le bloc de rappel de Kotlin depuis Java
noyau java: fichier de base haché
[Java] Créons un Minecraft Mod 1.16.1 [Fichier de base]
java construire un triangle
Accédez à API.AI depuis Java
De Java à Ruby !!
J'ai essayé OCR de traiter un fichier PDF avec Java
Utilisation de la base de données (SQL Server 2014) à partir d'un programme Java 04/01/2018
[Note] Créez un environnement Java à partir de zéro avec docker
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
J'ai créé un Wrapper qui appelle KNP depuis Java
Comment convertir un fichier en tableau d'octets en Java
21 Lire et exécuter le script à partir du fichier
Le chemin du fichier n'est pas reconnu lors de l'exécution d'une commande externe à partir d'une application Java
Appeler un programme écrit en Swift depuis Processing (Java)
Activez la cellule A1 de chaque feuille de fichier Excel avec Java
Comment stocker des chaînes de ArrayList à String en Java (personnel)