Avez-vous essayé l'option B de "démarrer"?
proc = Runtime.getRuntime().exec("cmd /c start /B somebat.bat");
Edit:
Ok, Anish, c'est drôle que votre code est pas exécuté.
Je mis en place un test unitaire:
Process proc = null;
try
{
proc = Runtime.getRuntime().exec("cmd /c start /B D:\\temp\\_test\\somebat.bat");
proc = Runtime.getRuntime().exec("cmd /c call D:\\temp\\_test\\somebat.bat");
proc = Runtime.getRuntime().exec("D:\\temp\\_test\\somebat.bat");
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
Mon fichier somebat.bat ressemble à ceci:
rem somebat.bat:
d:
cd D:\temp\_test
copy somebat.bat somebat2.bat
Les trois versions du bloc try ci-dessus travail dans mon scénario. Somebat.bat est copié dans somebat2.bat sans qu'une fenêtre de commande apparaisse (ce qui se passe, si j'utilise votre appel, montré dans votre question).
Edit 2: ronde suivante ;-)
Anish, pouvez-vous nous montrer comment votre somebat.bat et votre fichier fourmi ressemble?
Parce que tous les trois appels ci-dessous fonctionnent dans mon scénario:
code de test:
Process proc = null;
proc = Runtime.getRuntime().exec("cmd /c start /B c:\\temp\\_test\\somebat.bat");
proc = Runtime.getRuntime().exec("cmd /c call c:\\temp\\_test\\somebat.bat");
proc = Runtime.getRuntime().exec("c:\\temp\\_test\\somebat.bat");
somebat.chauve-souris:
cd\temp\_test
ant mycopy
build.xml:
<?xml version="1.0"?>
<project name="testproj" default="mycopy" basedir=".">
<target name="mycopy">
<copy file="myfile.txt" tofile="mycopy.txt" />
</target>
</project>
myfile.txt: fichier texte arbitraire
Ajoutez une sortie à la fin du script de traitement par lots. –