`
xiao_yi
  • 浏览: 394940 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java如何调用可执行文件和批处理命令

阅读更多


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 调用,即可。


分享到:
评论
7 楼 yinxiangjake 2008-11-26  
好贴,学习中,莫大的帮助啊
6 楼 cddcdd 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
5 楼 cddcdd 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();
		}

	}

}
4 楼 zhaojuan8 2008-06-05  
ytll21 写道
java支持调用批处理的。。。
Process child = Runtime.getRuntime().exec("xxx.bat");
child.waitFor();

我记得是不支持的吧?什么时候可以支持了?
3 楼 ytll21 2007-12-21  
java支持调用批处理的。。。
Process child = Runtime.getRuntime().exec("xxx.bat");
child.waitFor();
2 楼 xiao_yi 2007-12-21  
不直接支持,可是将bat文件转换为exe文件,这样不就支持喽...
1 楼 thurm_zhang 2007-12-20  
java不支持调用批处理文件?你用哪个版本的jdk?

相关推荐

    Java如何调用可执行文件和批处理命令.doc

    Java如何调用可执行文件和批处理命令

    换器也兼容其他多版本的JAVA程序,比如S40手机的JAVA程序

    【执行程序 Midp2Exe.exe】是一个DOS可执行文件,需要在DOS环境下执行,对没有DOS使用经验的人来说,操作起来会比较吃力。 【数据库文件 MidpRuntimeDLL.dll】是重要的主程序文件,执行程序就是调用这个文件来模拟...

    java jdk实列宝典 光盘源代码

    批处理,介绍如何一次执行一批sql语句,这些sql语句用插入、更新和删除等相关操作; 提交和回滚transaction.java; 使用PreparedStatement,动态执行sql语句,UsingPreparedStatement.java; 读写二进制数据,Binary...

    JAVA 范例大全 光盘 资源

    实例101 使用ProcessBuilder调用外部命令 263 实例102 监控管理虚拟机 267 第12章 XML开发.. 273 实例103 HTML文件转成XML文件 273 实例104 XML文件转成HTML文件 275 实例105 DOM4j解析XML文件 278 实例106 ...

    Java JDK实例宝典

    全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...

    Mcafee8.5i教程

    禁止在C盘中新建任何EXE可执行文件 禁止在C盘中新建任何COM可执行文件 禁止在C盘中新建任何DLL动态连接库文件 防范脚本病毒,禁止scrrun.dll 禁止在C盘中新建任何批处理BAT文件 禁止在C盘中新建任何VBS脚本文件 禁止...

    网管教程 从入门到精通软件篇.txt

    EXE:可执行文件(程序) F FAV:Microsoft Outlook导航条 FAX:传真类型图像 FCD:虚拟CD-ROM FDF:Adobe Acrobat表单文档文件 FLA:Macromedia Flash电影 FND:Microsoft Explorer保存的搜索文件(Find ...

    世界排名前6的杀软mcafee8.5i企业版

    禁止调用regsvc.dll 禁止在C盘中新建任何VXD文件 禁止私自创建共享文件夹 禁止telnet.exe运行 禁止在C盘中新建任何EXE可执行文件 禁止在C盘中新建任何COM可执行文件 禁止在C盘中新建任何DLL...

    matlab 6.5

    可在命令窗口执行test命令调用已有的test函数。 可自己添加函数和工具箱,setpath不能用,如果要新添路径需要到\toolbox\local\pathdef.m中手动添加。 如果matlab.exe不能正常启动,请双击bin目录下的matlab.exe或...

    jdbc基础和参考

    从Jdk6.0以后要求,JDBC 4.0 Drivers 必须包括 META-INF/services/java.sql.Driver 文件,有了这个文件以后不需要在显示的使用Class.forName来进行驱动的注册 Oracle数据库进行连接的时候,使用的驱动类: 1....

    【05-面向对象(下)】

    可执行“宏替换”的final变量 •对一个final变量来说,不管它是类变量、实例变量,还是局部变量,只要该变量满足3个条件,这个final变量就 不再是一个变量,而是相当于一个直接量。  –使用final修饰...

    Java学习笔记-个人整理的

    {1.14.1}Java的打包命令}{44}{subsection.1.14.1} {2}Everything is an Object }{45}{chapter.2} {2.1}类与对象}{45}{section.2.1} {2.1.1}构造方法}{45}{subsection.2.1.1} {2.1.2}Java变量类型}{47}{...

    mysql官方中文参考手册

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

    MYSQL中文手册

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. ...

    MySQL 5.1参考手册中文版

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. ...

    MySQL 5.1参考手册

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

    MySQL5.1参考手册官方简体中文版

    8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysql...

Global site tag (gtag.js) - Google Analytics