浏览 10547 次
锁定老帖子 主题:Java如何调用可执行文件和批处理命令
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-19
Java 是种跨平台的语言,我们经常碰到需要通过Java调用windows下某些程序。有些第三方厂商如(ANT),也提供了调用windows下可执行程序的方法,但我们往往需要调用一些批处理命令。而java 却不提供。 这里,我采用一种变相的调用方法,使得Java 能调用批处理命令。如果您有更好的方法,希望您能告诉我。 前期准备[/B] Quick Batch File (De)Compiler 将任何BAT、CMD批处理脚本编译为EXE文件! 开始 1. 运行exe 文件 Java JDK里已经提供了调用的方法,不在累赘,代码如下。 try { String command = "notepad"; Process child = Runtime.getRuntime().exec(command); } catch (IOException e) { } 2. 运行 bat(批处理) 文件 Java 对批处理文件还不支持。刚开始一直在研究 Java 如何调用批处理文件,始终找不到解决方法。后来只好绕过批处理,考虑如何将批处理转换为exe可执行文件。然后再通过Java调用可执行文件。 在Google上搜索一下,找到Quick Batch File (De)Compiler,可以将任何BAT、CMD批处理脚本编译为EXE文件。使用了一下,果然可以。 Quick Batch File (De)Compiler使用非常简单: Quickbfc 文件名.bat 文件名.exe(将批处理命令编译为可执行文件) quickbfd 文件名.exe 文件名.bat(将可执行文件反编译为批处理命令) 然后,我们再按第一种方法通过Java 调用,即可。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-20
java不支持调用批处理文件?你用哪个版本的jdk?
|
|
返回顶楼 | |
发表时间:2007-12-21
不直接支持,可是将bat文件转换为exe文件,这样不就支持喽...
|
|
返回顶楼 | |
发表时间:2007-12-21
java支持调用批处理的。。。
Process child = Runtime.getRuntime().exec("xxx.bat"); child.waitFor(); |
|
返回顶楼 | |
发表时间:2008-06-05
ytll21 写道 java支持调用批处理的。。。
Process child = Runtime.getRuntime().exec("xxx.bat"); child.waitFor(); 我记得是不支持的吧?什么时候可以支持了? |
|
返回顶楼 | |
发表时间:2008-10-23
import java.io.BufferedReader; import java.io.InputStreamReader; /** * */ /** * @author cddcdd@ * */ public class Test { /** * */ public Test() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { Process process; try { process = Runtime.getRuntime().exec("1.bat"); BufferedReader read = new BufferedReader(new InputStreamReader( process.getInputStream())); String str = null; while ((str = read.readLine()) != null) { System.out.println(str); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
|
返回顶楼 | |
发表时间:2008-10-23
cddcdd 写道 import java.io.BufferedReader; import java.io.InputStreamReader; /** * */ /** * @author cddcdd@ * */ public class Test { /** * */ public Test() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { Process process; try { process = Runtime.getRuntime().exec("1.bat"); BufferedReader read = new BufferedReader(new InputStreamReader( process.getInputStream())); String str = null; while ((str = read.readLine()) != null) { System.out.println(str); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 可以的呀。我用1.5 |
|
返回顶楼 | |
发表时间:2008-11-26
好贴,学习中,莫大的帮助啊
|
|
返回顶楼 | |