`
liyixing1
  • 浏览: 961483 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

java Runtime.exec方法详解

阅读更多



1.关于CMD(为了让exec更正常的运行,往往会通过cmd来启动命令)

cmd /c dir 是执行完dir命令后关闭命令窗口。

cmd /k dir 是执行完dir命令后不关闭命令窗口。

cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。

cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。


其中/C会阻塞java的线程,因为java需要等待进程结束

/k的话它怎么都获取不到输出的信息,无论是输入流还是错误输入流都不行!

/k还没测试是不是会阻塞。

2.调用多个命令,这个学一下bat脚本,就知道了,bat脚本(exec 其实也算是bat的一个环境,),在bat中可以通过&&把多个命令拼接一起运行,bat的环境其实是通过cmd.exe命令获取到的。所以前面必须通过cmd

exec("cmd /c set CLASSPATH=D:\\java\\test && javac D:\\java\\java.java && java D:\\java\\ com.a.A")



3.参数化



第一个参数cmdarray——包含所调用命令极其参数的数组。

例如:shutdown -s -t 3600——在一小时后自动关机命令

我们可以构建这样的一个数组:String arr[] = {"shutdown","-s","-t","3600"};

数组第一个元素“shutdown”是命令,其后的三个-s、-t、3600都是参数,然后直接将这个数组注入exec方法即可。

需要注意的是,在调用这个方法时我们不能将命令和参数放在一起——String arr[] = {"shutdown -s -t 3600"};


然后是第二个参数:envp——字符串数组,其中每个元素的环境变量的设置格式为 name=value,如果子进程应该继承当前进程的环境,或该参数为null。

String envp[] = {"CLASSPATH=D://"}


第三个参数,运行环境目录,对应的就是java的System.getProperty("user.dir")
Process process = Runtime.getRuntime().exec(new String[]{"shutdown","-s","-t","3600"}, null, new File("D:/TEST"));
  • 大小: 16.9 KB
  • 大小: 11 KB
分享到:
评论

相关推荐

    java执行可执行文件,Runtime.exec、ProcessBuilder、commons-exec

    ### Java执行可执行文件的方法详解 在Java编程中,经常需要执行一些外部的可执行文件或者脚本(如bat或shell脚本)。本文将详细介绍三种常用的方法:`Runtime.exec()`、`ProcessBuilder`以及`commons-exec`库。 ##...

    java.lang.Runtime.exec() Payload知识点详解

    java.lang.Runtime.exec() Payload知识点详解 Java.lang.Runtime.exec() 方法是 Java 语言中用于执行操作系统命令的方法,它可以将参数传递给命令,并执行命令以获取结果。但是,在使用该方法时,需要注意一些重要...

    Java调用应用程序和Dos中的命令

    #### 二、Runtime类的exec()方法详解 `Runtime.exec()`是Java中用来执行外部命令的重要方法之一,它有多种重载形式,其中最常见的两种形式如下: 1. **基本形式**:`Process p = Runtime.getRuntime().exec...

    java调用播放器

    这种操作可以通过Java的`Runtime`类实现,具体来说是通过`Runtime.exec()`方法来执行外部命令。这种方式特别适用于需要在应用程序中集成多媒体功能但又不想引入复杂的多媒体处理库的情况。 #### 二、知识点详解 ##...

    java修改文件属性

    这通常是通过`java.lang.Runtime`类的`exec()`方法执行外部命令来实现的。 1. **设置文件为只读**:使用`File.setReadOnly()`。 ```java File file = new File("path/to/your/file"); boolean success = file....

    java 使用dos命令详解

    ### Java使用DOS命令详解 在Java开发过程中,有时候我们需要执行一些特定的操作系统命令来完成特定的任务,尤其是在Windows平台上。本文将详细介绍如何在Java中调用DOS命令,并通过具体的示例来阐述这一过程。 ###...

    Java软件开发实战 Java基础与案例开发详解 9-3 Rintime类的使用 共6页.pdf

    Java程序不能直接创建`Runtime`类的实例,而必须通过`Runtime.getRuntime()`静态方法获取当前运行时环境的`Runtime`对象。这是由于`Runtime`类的构造方法是私有的,不允许外部直接实例化。 #### Runtime类的主要...

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

    `Runtime.getRuntime()`方法用于获取当前Java应用程序的运行时对象,通过这个对象可以调用`exec()`方法来启动一个新的进程。 #### exec()方法详解 `exec()`方法是`Runtime`类中的一个重要成员,它用于启动一个新...

    Java Runtime类详解_动力节点Java学院整理

    Java的Runtime类是Java语言与运行环境之间的一个接口,它提供了很多方法来管理Java应用程序的运行环境,包括内存管理和执行外部程序等。Runtime类的实例是全局的,每个Java应用程序都只有一个Runtime实例,通过`...

    java智能实现数据库备份.pdf

    Java可以通过`Runtime.getRuntime().exec()`方法来执行外部程序或命令。例如: ```java Runtime cmd = Runtime.getRuntime(); Process p = cmd.exec("mysqldump --opt – hlocalhost --user=root --password=admin ...

    java调用视频转换工具ffmpeg.zip

    直接执行命令是通过Runtime.exec()方法或ProcessBuilder类来调用FFmpeg的命令行工具,例如: ```java String command = "ffmpeg -i input.mp4 output.mp4"; Process process = Runtime.getRuntime().exec(command);...

    Java调用批处理示例

    Java提供了多种方法来调用外部命令,其中一种常用的方式就是通过`Runtime.getRuntime().exec()`方法来执行批处理文件。 #### 二、Java调用批处理的基本语法 Java中调用批处理的基本语法如下: ```java Process ...

    Java代码中调用shell脚本和python脚本并获得输出结果(分为小数据量和大数据量).docx

    Java中可以通过`java.lang.Runtime`类中的`exec()`方法来执行外部命令,进而调用Shell脚本或Python脚本。以下是一个基本的例子: ```java public String python(String pythonPath, String[] params) { File file ...

    java中调用本地exe文件

    #### 2.1 `Runtime.getRuntime().exec(String command)`方法 该方法用于启动一个新的进程并执行指定的命令。在这个例子中,我们传递了"notepad"作为参数,表示打开记事本程序。 #### 2.2 `p.waitFor()`方法 这个...

    Android中实现ping功能的多种方法详解

    Android中实现ping功能的多种方法详解 Android系统中实现ping功能是 Android开发中的一项重要任务,本文将详细介绍 Android中实现ping功能的多种方法。 方法一:使用InetAddresss方式 从Java 1.5开始,java.net...

    用JAVA导出MYSQL的数据

    这通常涉及使用Java的`Runtime.getRuntime().exec()`方法来执行系统命令。以下是一个简单的Java示例,展示了如何调用`mysqldump`命令来导出数据: ```java package com; import java.io.*; public class Test { ...

    java jsp实现mysql备份还原 代码

    这个方法实现了数据库备份的功能,其中 `Put()` 方法使用 `Runtime.getRuntime().exec()` 方法执行备份命令,并在备份完成后输出“备份成功”的提示信息。 ##### 4. 数据库还原实现 ```java public void In() ...

    Java打开C盘.txt

    它利用了Java的`Runtime`类提供的方法`exec`来执行操作系统命令。需要注意的是,这种方法具有一定的平台依赖性,因此在不同操作系统上运行时可能需要调整命令。此外,对于异常处理部分,建议进行改进以提高程序的...

    Java控制命令提示符.txt

    #### 1.2 exec() 方法详解 `exec(String command)`方法接受一个字符串参数作为命令行指令,并返回一个`Process`对象,该对象代表了由指定命令创建的新进程中所执行的程序。此方法能够执行任何可以通过命令行输入的...

Global site tag (gtag.js) - Google Analytics