`
xiao_yi
  • 浏览: 406016 次
  • 性别: 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开发中常见的需求,特别是在与系统交互或集成外部工具时。本文将详细讲解两种主要的方法:调用exe文件和通过转换批处理文件来间接调用。 首先,调用Windows下的可执行文件...

    java执行可执行文件或批处理

    在Java中执行外部可执行文件或批处理脚本是一种常见的需求,尤其是在需要调用系统级别的工具或者与操作系统进行交互时。通过Java的`Runtime`类及其提供的方法,我们可以方便地实现这一功能。本文将详细介绍如何在...

    编写批处理命令来执行JAVA文件

    批处理文件(.bat)是一种文本文件,包含了可执行的DOS命令。当用户运行这个文件时,Windows会逐行解析并执行这些命令。这对于运行Java程序特别有用,尤其是需要设置环境变量或执行多条命令的情况。 2. **JAVA环境...

    java 调用windows的一些可执行文件

    这个方法接受一个字符串参数,该参数应该包含完整的操作系统命令,包括可执行文件路径和任何必要的参数。例如,如果你有一个名为`mybatch.bat`的批处理文件,你可以这样调用: ```java Runtime.getRuntime().exec(...

    批处理执行java项目main方法

    这一步是为了确保批处理文件能找到Java的可执行文件,如`java.exe`。 3. **项目地址**: `cd /D %PROJECT_DIR%`用于切换到项目目录,`%PROJECT_DIR%`是你需要替换为实际项目路径的占位符。这样,批处理文件就能在...

    生成java可执行文件

    标题中的“生成java可执行文件”指的是将Java程序转换成可以直接运行的格式,如同Windows操作系统下的.exe文件。这种转换的目的是使Java程序更便于运行,尤其是对于那些没有安装Java运行环境的用户。描述中提到的...

    Linux下Java中调用可执行程序

    例如,`rt.exec("./verifyta 2doors.xml 2doors.q")`会执行名为`verifyta`的可执行文件,并传递`2doors.xml`和`2doors.q`作为参数。这里的路径`./verifyta`假设是在当前工作目录下。 3. **处理输入/输出流**: ...

    jar文件运行批处理

    rem 设置JDK的bin目录,确保Java可执行文件路径正确 set JAVA_HOME=C:\Program Files\Java\jdk版本号\bin set PATH=%JAVA_HOME%;%PATH% rem 指定JAR文件名和主类名 java -jar permutation.jar ``` 这个批处理文件...

    批处理执行java代码

    批处理执行Java代码的关键在于正确配置环境变量,指定Java的路径和类路径,以及正确地调用`java`命令来运行程序。此外,批处理脚本还可以包含其他操作,如文件操作、条件判断、循环等,以实现更复杂的自动化任务。...

    把java原代码变成可执行文件exe

    将Java原代码转换为可执行的EXE文件是许多开发者追求的目标,尤其是在Windows平台上,因为EXE文件能够更方便地分发和运行。下面,我们将深入探讨如何通过一系列步骤,利用Eclipse IDE、JAR文件、批处理脚本(BAT)...

    java调用批处理

    Java程序可以直接通过`Runtime.getRuntime().exec()`方法来执行操作系统级别的批处理命令。例如,你可以调用系统中的批处理脚本或者命令,如Windows的`.bat`文件或Linux的`.sh`脚本。这种方式简单直接,但缺点是与...

    图文解说教你如何把java源代码变成可执行文件exe

    将Java程序转换为可执行文件的另一种方法是创建一个批处理文件(.bat),该文件可以调用Java虚拟机(JVM)来执行JAR文件。 1. **创建批处理文件**: - 在Eclipse导出JAR文件所在的目录中新建一个文本文件,例如命名...

    JAVA如何调用DOS命令.doc

    总之,Java调用DOS命令主要依赖`Runtime`和`Process`类,需要注意命令格式、标准输出处理以及资源管理等问题,以确保命令的正确执行和程序的稳定运行。在实际开发中,应充分考虑各种情况,以保证代码的健壮性和跨...

    基于批处理命令的Sql server数据库备份和恢复策略的研究.pdf

    例如,系统会生成数据库备份命令和文件压缩命令,然后通过调用相应的命令行工具来完成备份任务。 总结来说,文章强调了自动化备份和恢复系统在中小型企业中的重要性,并且通过实际开发的基于Web服务的数据库备份与...

    JAVA执行DOS命令分析

    2. **打开非可执行文件**: 如果你想打开一个关联了特定应用程序的文件,比如一个Word文档,你可以使用`exec()`方法直接调用文件。例如,`exec("start .\\a.doc")`会在默认关联的应用程序中打开`a.doc`,而`exec("c...

    批处理教程(最全版)

    5. **批处理外部命令**:除了内置命令,还可以调用其他可执行程序或脚本,如`python.exe`、`java.exe`等。 学习批处理教程的关键点: 1. **命令语法**:了解每种批处理命令的正确用法,包括参数和选项。 2. **...

    批处理设置java环境变量

    当我们在命令行输入`java`或`javac`等命令时,系统会在`PATH`中列出的每个目录下查找对应的可执行文件。为了能直接在任意目录下运行Java命令,我们需要将`%JAVA_HOME%\bin`添加到`PATH`中。 **3. CLASSPATH** `...

Global site tag (gtag.js) - Google Analytics