由于多种情况需要执行bat文件生成注入*.wsdl的文件,在Eclipse中需要方便执行,以及需要Java调用相应的批处理文件,具体方式总结如下。
1:需要执行的文件runjava2wsdl.bat文件,里面有命令行
2:通过ant执行,ant的build.xml在工程的更目录下,runjava2wsdl.bat在相应的bin目录 下定义为demo.bin.dir
<target name="runwsdl" description="run the wsdltool">
<echo>运行runjava2wsdl.bat命令行</echo>
<exec dir="${demo.bin.dir}" executable="cmd.exe">
<arg line="/c runjava2wsdl.bat"/>
</exec>
</target>
3:利用Java命令来运行
Runtime.getRuntime.exec("cmd.exe /c runjava2wsdl.bat");
4:原理分析
调用Runtime.exec方法将产生一个本地的进程,并返回一个Process子类的实例,该实例可用于控制进程或取得进程的相关信息. 由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream()方法重定向给它的父进程了.用户需要用这些stream来向 子进程输入数据或获取子进程的输出.