核心代码:
try {
String command = "cmd /c dir";
Process process = Runtime.getRuntime().exec(command);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while((output=bufferedReader.readLine()) != null){
System.out.println(output);
}
process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
一、对于Process
1、JDK1.6是这么说的:Process是继承自Object的一个抽象类。
2、由ProcessBuilder.start()[没研究过]和Runtime.exec方法创建一个本机进程,并返回Process子类的一个实例,该实例可用来控制进程并获得相关信息。
结合1、2点理解:第一,很显然Process不能new一个(因为是个抽象类),所以一般[当然也可以继承此方法重写里面的abstract方法来实例化]靠以上两个方法创建实例;第二,控制进程是指可以使用destroy方法来杀掉子进程和使用waitFor方法是当前进程等待[如有必要,一直要等到由改Process对象表示的进程已经终止---JDK1.6];第三,获得相关信息是指可以通过getErrorStream、getInputStream、和getOutputStream三个方法获取子进程的错误流、输入流、输出流。
【创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程,Microsoft Windows 上的 Win16/DOS 进程,或者 shell 脚本。创建的子进程没有自己的终端或控制台。它的所有标准 io(即 stdin、stdout 和 stderr)操作都将通过三个流 (getOutputStream()、getInputStream() 和 getErrorStream()) 重定向到父进程。父进程使用这些流来提供到子进程的输入和获得从子进程的输出。因为有些本机平台仅针对标准输入和输出流提供有限的缓冲区大小,如果读写子进程的输出流或输入流迅速出现失败,则可能导致子进程阻塞,甚至产生死锁。】---JDK1.6的其他解释
二、对于Runtime
1、Runtime之前只是获得java虚拟机内存的时候用过几次。
2、Runtime.getRuntime().exec方法可以在java中执行外部程序。
关于exec方法的几个版本和JDK1.6的解释:
exec(String command),单独的进程中执行指定的字符串命令。
exec(String[] cmdarray),单独的进程中执行指定的命令和变量。
exec(String[] cmdarray, String[] envp), 在指定环境的独立进程中执行指定命令和变量。
exec(String[] cmdarray, String[] envp, File dir),在指定环境和工作目录的独立进程中执行指定的命令和变量。
exec(String command, String[] envp) ,在指定环境的单独进程中执行指定的字符串命令。
exec(String command, String[] envp, File dir),在有指定环境和工作目录的独立进程中执行指定的字符串命令。
一般我们只关心exec方法的第一种,第四和第六种可以传递目录地址,是执行此命令的目录,有的程序使用这个比较方便。
三、cmd命令
cmd /c dir 是执行完dir命令后关闭命令窗口。
其他版本:
cmd /k dir 是执行完dir命令后不关闭命令窗口。
cmd /c start dir 打开一个新窗口执行dir命令,原窗口会关闭。
cmd /k start dir 打开一个新窗口执行dir命令,原窗口不会关闭。
四、output为执行命令后的输出信息,如果想进行分析,或者显示使用。
分享到:
相关推荐
下面将详细介绍如何使用Java执行DOS命令以及相关知识点。 一、Runtime类 Runtime类是每个Java应用程序都有的一个实例,它提供了执行系统命令的方法。我们可以通过getRuntime()方法获取到Runtime实例,然后调用exec...
本文将深入探讨如何使用Java执行DOS命令,并给出具体示例。 首先,`Runtime`类是每个Java应用程序都有的一个实例,它允许程序与正在执行它的环境进行交互。我们可以通过`Runtime.getRuntime().exec()`方法来执行DOS...
在Java编程中,有时我们需要执行操作系统级别的任务,如运行DOS命令。这通常涉及到使用`Runtime`类的`exec()`方法。`Runtime.getRuntime().exec()`允许我们创建一个子进程来执行指定的命令或可执行程序。这个过程...
Java调用DOS命令是指在Java程序中执行操作系统级别的命令,比如Windows下的CMD命令或Linux下的Shell命令。这种功能在很多场景下都很有用,比如自动化脚本、文件操作、系统管理等。Java提供了Runtime类和...
通过java执行底层dos命令,不是很全但是可以参考!
### Java使用DOS命令详解 在Java开发过程中,有时候我们需要执行一些特定的操作系统命令来完成特定的任务,尤其是在Windows平台上。本文将详细介绍如何在Java中调用DOS命令,并通过具体的示例来阐述这一过程。 ###...
总之,Java调用DOS命令主要依赖`Runtime`和`Process`类,需要注意命令格式、标准输出处理以及资源管理等问题,以确保命令的正确执行和程序的稳定运行。在实际开发中,应充分考虑各种情况,以保证代码的健壮性和跨...
JAVA 调用 DOS 命令是指在 JAVA 程序中执行 DOS 命令,实现了 JAVA 程序与 DOS 命令的交互。这种交互可以实现多种功能,如获取 DOS 命令的标准输出和错误输出、阻塞当前 JAVA 线程直到命令执行完毕等。 在 JAVA 中...
Java调用DOS命令主要涉及Java的Runtime类和ProcessBuilder类,这两个类允许Java程序执行外部命令,也就是我们常说的DOS命令或者Windows命令行指令。这个过程通常被称为进程交互或者系统调用。 首先,Runtime类是每...
Java操作DOS命令主要指的是通过Java程序调用操作系统(如Windows、Linux等)的命令行接口,执行系统级别的操作。这种技术在很多场景下都非常实用,例如自动化测试、系统管理或者进行一些系统级别的数据处理。下面...
在学习JAVA的过程中,掌握一些基本的DOS命令是非常有帮助的。DOS,全称Disk Operating System,是一种早期的操作系统,尽管现在已经被更先进的Windows等图形界面操作系统所取代,但在命令行环境中执行某些任务,特别...
本文将深入探讨如何使用Java来调用DOS命令,并以创建文件夹、复制文件以及运行BAT批处理文件为例,详细解释实现过程。 首先,我们来看如何用Java创建一个以当前日期为名的文件夹。在Java中,我们可以使用`java.io....
"JAVA如何调用DOS命令" 本文将详细介绍如何使用 Java 调用 DOS 命令,从基本概念到实践应用,总结了几种需要注意的情况,并提供了相应的解决方案。 调用DOS命令的基本概念 在 Java 中,可以使用 Runtime 类和 ...
一、Java执行DOS命令 1. 使用`Runtime.getRuntime().exec()`方法: 这是Java中执行外部命令最基础的方式。例如,我们想执行DOS下的"dir"命令,可以这样写: ```java String command = "cmd /c dir"; // cmd /c ...
运行Dos命令执行Java -jar xxx.jar时,输出内容可见。可自定义运行Dos命令,运行后自动最小化右下角到任务栏,关闭时要确认,也可要求设置密码才可退出。 执行说明: 在config.dt文件中配置,cmdLine=E:\Java2\...
以下是从“关于Java的常用DOS命令”这一主题中提炼出的关键知识点,这些知识点涵盖了文件操作、环境变量查看、Java编译运行以及与Tomcat服务器相关的配置等核心内容。 ### DOS命令在Java开发中的应用 #### 文件...
这里我们主要探讨如何使用DOS命令来测试Java JAR文件,以及如何在命令行下运行JUnit测试。这是一项基础但至关重要的技能,因为通过命令行工具可以高效地自动化测试和调试代码。 首先,让我们了解Java JAR文件。JAR...
### Java零基础(JDK13) - 常用DOS命令 - cd回到上级以及回到根 #### 概述 本文档将引导读者了解...通过本文档的学习,读者不仅能够掌握使用Java执行DOS命令的基本技能,还能在实际开发中应用这些技能解决具体问题。