Java调用批处理:
import java.io.*;
public class Test{
public static void main(String[] args){
try {
//执行批处理文件
Process process = Runtime.getRuntime().exec("文件路径");
//取得命令结果的输出流
InputStream fis = process.getInputStream();
//用一个读输出流类去读
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = null;
//逐行读取输出到控制台
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java打开DOS窗口:
public class Test{
public static void main(String[] args){
try {
Process process = Runtime.getRuntime().exec("cmd start ");
}catch(Exception e){
e.printStackTrace();
}
}
另附start参数说明:
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program]
[parameters]
"title" 在窗口标题栏中显示的标题。
path 起始目录
B 在不创建新窗口的情况下开始应用程序。 除非
启动 ^C 处理,否则该应用程序会忽略 ^C 处理;
^Break 是唯一可以中断该应用程序的方式
I 新环境是传递给 cmd.exe 的原始环境,
而不是当前环境
MIN 开始时窗口最小化
MAX 开始时窗口最大化
SEPARATE 在分开的空间内开始 16 位 Windows 程序
SHARED 在分共享的空间内开始 16 位 Windows 程序
LOW 在 IDLE 优先级类别开始应用程序
NORMAL 在 NORMAL 优先级类别开始应用程序
HIGH 在 HIGH 优先级类别开始应用程序
REALTIME 在 REALTIME 优先级类别开始应用程序
ABOVENORMAL 在 ABOVENORMAL 优先级类别开始应用程序
BELOWNORMAL 在 BELOWNORMAL 优先级类别开始应用程序
WAIT 启动应用程序并等候它结束
command/program
如果是内部 cmd 命令或批文件,那么该命令处理器是
用 /K 命令行开关运行 cmd.exe 的。这表示该窗口在命令运行
后仍然存在。
如果不是内部 cmd 命令或批文件,则是一个程序,并
作为窗口应用程序或控制台应用程序运行。
parameters 这些为传送到命令/程序的参数
如果命令扩展名被启用,通过命令行或 START 命令的外部命令
调用会如下改变:
将文件名作为命令键入,非可执行文件可以通过文件关联调用。(例如, WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和 FTYPE 命令。
执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。
如果执行的命令行的第一个符号是不带扩展名或路径修饰符的 字符串 "CMD","CMD" 会被COMSPEC 变量的数值所替换。这防止从当前目录抓出 CMD.EXE。
如果执行的命令行的第一个符号没有扩展名,CMD.EXE 会使用PATHEXT 环境变量的数值来决定要以什么顺序寻找哪些扩展名。PATHEXT 变量的默认值是: COM;.EXE;.BAT;.CMD
请注意,该语法跟 PATH 变量的一样,分号隔开不同的元素。
查找可执行文件时,如果没有相配的扩展名,看一看该名称是否与目录名相配。如果确实如此,START 会在那个路径上调用Explorer。如果从命令行执行,则等同于对那个路径作 CD /D。
分享到:
相关推荐
总之,Java调用DOS命令主要依赖`Runtime`和`Process`类,需要注意命令格式、标准输出处理以及资源管理等问题,以确保命令的正确执行和程序的稳定运行。在实际开发中,应充分考虑各种情况,以保证代码的健壮性和跨...
批处理文件(.bat)是一种文本文件,包含了可执行的DOS命令。当用户运行这个文件时,Windows会逐行解析并执行这些命令。这对于运行Java程序特别有用,尤其是需要设置环境变量或执行多条命令的情况。 2. **JAVA环境...
本文将详细介绍如何使用Bat文件调用Java程序,并以"InvokeHello.bat"调用"Hello.jar"和"Hello.java"为例进行讲解。 首先,让我们了解批处理文件(Bat文件)。批处理文件是Windows操作系统中的脚本文件,它包含一...
5. 处理标准输出:当执行的程序有大量标准输出时,可能会导致DOS窗口不自动关闭,造成Java程序阻塞。这时,可以使用`Process`的输入流来读取并处理标准输出,防止缓冲区溢出,如: ```java Process process = ...
由于DOS窗口的标准输出缓冲区有限,如果输出过多,窗口不会自动关闭,导致Java程序在`waitfor()`时阻塞。解决这个问题的方法是使用`Process`类来捕获并处理子进程的标准输出。例如,你可以创建一个`BufferedReader`...
7. **Java调用批处理**:在Java程序中,我们可以使用`Runtime.getRuntime().exec()`方法来执行批处理命令。例如,`Runtime.getRuntime().exec("cmd /c start test.bat")`会启动一个新的命令行窗口并执行`test.bat`。...
#### 一、Java调用DOS命令的基础方法 Java提供了`Runtime`类以及其子类`Process`来实现对操作系统的调用。其中,`Runtime.getRuntime().exec(command)`是执行外部程序的主要方法,它可以创建一个新进程并返回一个`...
Java调用批处理程序(BAT文件)是一种常见的技术,它允许开发者在Java应用程序中执行Windows系统的命令行操作。本DEMO展示了如何通过Java代码来执行一个.bat文件,从而实现自动化任务或者集成到Java应用程序中。以下...
解决此问题的一种方法是在调用`waitFor()`之前先读取DOS窗口的标准输出缓冲区的内容。可以使用Java的`BufferedReader`来实现这一点: ```java String ls_1; Process process = Runtime.getRuntime().exec("cmd /c ...
此外,`compile.bat`和`Test4.bat`可能是批处理文件,用于编译和运行Java程序。批处理文件是一种简单的脚本,可以包含一系列DOS命令,方便连续执行。比如,`compile.bat`可能包含了`javac Test4.java`这样的命令,...
通过在批处理脚本中调用IDEA的可执行文件,可以快速启动这个IDE,节省了开发者手动打开的时间。 Nacos是阿里巴巴开源的一个动态配置服务和发现服务,适用于微服务架构。它可以帮助开发者集中管理和推送服务配置,...
6. **批处理实用技巧**:例如,使用`call`命令来调用其他批处理文件,或者使用`start`命令启动新的命令窗口等。 在实际应用中,批处理可以用于日常的系统维护,如批量重命名文件、清理临时文件、自动备份等。也可以...
`readme.txt`和`使用说明.txt`通常是提供给用户的文档,它们可能详细解释了如何使用这些工具,包括如何配置`suppress.ini`,以及如何在NSIS脚本中整合`suppress.exe`,以确保最终生成的GUI可执行文件在运行时不会...
- 解决方案:设置`JAVA_HOME`环境变量并重新启动DOS窗口。 - **编译失败**:运行`javac abc.java`时找不到文件。 - 解决方案:确认在正确的目录下且文件扩展名为`.java`而非`.java.txt`。 - **大小写错误**:...
3. **创建批处理文件**:如果Java代码在不同操作系统之间运行,可以创建一个批处理文件(`.bat` for Windows, `.sh` for Linux),然后在Java中调用这个批处理文件,从而简化命令行参数的处理。 4. **使用ffmpeg的...
- 标签“java-dos”可能是指这些程序可以通过命令行(DOS窗口)运行的批处理文件(bat文件)启动。 - `bat`文件是Windows操作系统中的脚本文件,可以执行一系列命令,包括调用Java虚拟机(JVM)运行`.jar`文件。 ...
1. **多窗口支持**:Win-TC允许用户同时打开多个命令行窗口,每个窗口可以独立执行不同的命令,便于对比和管理不同目录下的文件。 2. **增强的文件操作**:除了基本的复制、移动、删除文件和目录,Win-TC还支持批量...
在DOS环境下,可以通过INT 21H中断服务调用来获取当前日期,具体是使用功能号2Ch,然后解析返回的数据,以常见的年/月/日格式展示给用户。 2. 日历查询:用户可以输入指定的年、月,系统则根据输入生成相应的月份...