Haben Sie die B-Option "Start" probiert?
proc = Runtime.getRuntime().exec("cmd /c start /B somebat.bat");
Edit:
Ok, Anish, das ist lustig, dass der Code nicht ausgeführt wird.
ich einen Unit-Test-up:
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();
}
Meine somebat.bat Datei sieht wie folgt aus:
rem somebat.bat:
d:
cd D:\temp\_test
copy somebat.bat somebat2.bat
Alle drei Versionen im try-Block über Arbeit in meinem Szenario. Somebat.bat wird in somebat2.bat kopiert, ohne dass ein Befehlsfenster erscheint (was passiert, wenn ich Ihren Anruf verwende, der in Ihrer Frage angezeigt wird).
Edit 2: Nächste Runde ;-)
Anish, können Sie zeigen uns, wie Ihre somebat.bat und Ihre ant-Datei aussehen?
Da alle drei Anrufe unter der Arbeit in meinem Szenario:
Testcode:
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.Schläger:
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: beliebige Textdatei
Fügen Sie am Ende des Batch-Skripts einen Exit hinzu. –