Maison >Java >javaDidacticiel >Comment puis-je exécuter de manière fiable des commandes Shell avec le runtime Java ?
Manipulation du comportement du shell dans Java Runtime
Lors de l'utilisation de l'utilitaire Runtime.exec(String) de Java, des divergences peuvent survenir entre l'exécution de certaines commandes shell. Pour comprendre ces anomalies, nous devons nous plonger dans la mécanique des opérations des obus.
Comprendre les responsabilités des obus
Les obus effectuent des tâches cruciales qui soutiennent l'exécution des commandes, notamment :
Causes des échecs d'exécution
Les commandes dépendantes du shell peuvent échouer lorsque invoqué via Runtime.exec(String) car :
Solutions de contournement
Simple mais imparfait :
Utilisation de Runtime.exec(String[]) et passer la commande à un interpréteur shell permet une commande directe exécution :
String myFile = "some filename.txt"; String myCommand = "cp -R '" + myFile + "' $HOME 2> errorlog"; Runtime.getRuntime().exec(new String[] { "bash", "-c", myCommand });
Robuste et sécurisé :
Pour une sécurité et une robustesse accrues, gérez explicitement les responsabilités du shell à l'aide de ProcessBuilder :
String myFile = "some filename.txt"; ProcessBuilder builder = new ProcessBuilder( "cp", "-R", myFile, System.getenv("HOME")); builder.redirectError(ProcessBuilder.Redirect.to(new File("errorlog"))); builder.start();
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!