首页
学习
活动
专区
圈层
工具
发布

Java程序员的日常 —— 多进程开发

最近再弄进程管理相关的工作,因此必要的就涉及到各种系统下关于进程的管理。 这里简单的介绍下: 如何在Java中执行命令 在windows下肯定是dos命令了,而在linux则为shell命令。...执行的方式差不多相同: 方法1:Runtime windows版本: Process process = Runtime.getRuntime().exec("ipconfig /all"); Linux...版本: Process process = Runtime.getRuntime().exec("ifconfig -a"); 由此可以见,java程序都是相同的,只是命令不同而已。...","/all"); Process process = builder.start(); 获得输出信息同上面,但是多了一个合并输出和错误的功能: builder.redirectErrorStream...获取进程列表 对比进程列表,得到最新启动的进程 因此,就需要知道如何获得进程列表: windows版本获得进程列表 Runtime.getRuntime().exec("cmd /C tasklist

1.3K90

RunTime.getRuntime().exec()运行脚本命令介绍和阻塞

java在企业级项目开发中,无论是强制性的功能需要,还是为了简便java的实现,需要调用服务器命令脚本来执行。...在java中,RunTime.getRuntime().exec()就实现了这个功能。     ...用法:         public Process exec(String command)-----在单独的进程中执行指定的字符串命令。        ...public Process exec(String [] cmdArray)---在单独的进程中执行指定命令和变量                        public Process exec...在调用runtime去执行脚本的时候,其实就是JVM开了一个子线程去调用JVM所在系统的命令,其中开了三个通道: 输入流、输出流、错误流,其中输出流就是子线程走调用的通道。

3.5K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【转】Java中Runtime.exec的一些事 

    为了处理好外部命令大量输出的情况,你要确保你的程序处理好外部命令所需要的输入或者输出。...6 不良好的重定向命令输出 错误的认为exec方法会接受所有你在命令行或者Shell中输入并接受的字符串。...这些错误主要出现在命令作为参数的情况下,程序员错误的将所有命令行中可以输入的参数命令加入到exec中。下面的例子中就是一个程序员想重定向一个命令的输出。...你必须用Runtime.exec()去执行程序 你不能象命令行一样使用Runtime.exec()。 9 问答 问:为什么Runtime.exec("ls")没有任何输出?...所以正确执行Runtime.exec("ls")的例程如下: Java代码 try { Process process = Runtime.getRuntime().exec(command

    3.4K20

    Java代码审计| Spring框架知识篇

    0X01 传统Java代码命令执行 1.知识说明 由于业务需求,程序有可能要执行系统命令的功能,但如果执行的命令用户可控,业务上有没有做好限制,就可能出现命令执行漏洞。...但Spring框架漏洞则是某组件可能存在解析执行系统命令代码的方法并根据命令执行方法(Runtime.getRuntime().exec(cmd))构造执行系统命令的POC,如果命令执行成功,造成Spring...2.例子 此处以getRuntime为例,Runtime.getRuntime().exec(cmd)执行系统命令并弹出计算器。...此方法将产生一个本地的进程,并返回一个Process子类的实例(注意:Runtime.getRuntime().exec(cmd)返回的是 一个Process类的实例)该实例可用于控制进程或取得进程的相关信息...用户需要用这些Stream来向子进程输入数据或获取子进程的输出,使用getInputStream()去读取命令执行结果: import java.io.BufferedReader; import java.io.IOException

    1.1K20

    【JAVA代码审计】——1、Spring框架知识篇

    0X01 传统Java代码命令执行  1.知识说明  由于业务需求,程序有可能要执行系统命令的功能,但如果执行的命令用户可控,业务上有没有做好限制,就可能出现命令执行漏洞。 ...但Spring框架漏洞则是某组件可能存在解析执行系统命令代码的方法并根据命令执行方法(Runtime.getRuntime().exec(cmd))构造执行系统命令的POC,如果命令执行成功,造成Spring...2.例子  此处以getRuntime为例,Runtime.getRuntime().exec(cmd)执行系统命令并弹出计算器。 ...系统命令的执行结果:  此方法将产生一个本地的进程,并返回一个Process子类的实例(注意:Runtime.getRuntime().exec(cmd)返回的是一个Process类的实例)该实例可用于控制进程或取得进程的相关信息...用户需要用这些Stream来向子进程输入数据或获取子进程的输出,使用getInputStream()去读取命令执行结果:  import java.io.BufferedReader; import java.io.IOException

    68620

    android 调用系统命令实现关机2017亲测有效

    最近我想做一个简单的手机重启,结果在网上搜了好多代码一个也不管用,正在郁闷时候,看到这个代码试了下居然成功了,测试工具是android studio2.2..2,具体如下 系统reboot命令有两个功能...(我暂时知道的),关机跟重启,一开始以为它就只会用来重启的,下面用Java代码调用这个命令来实现关机和重启 [java] view plain copy public static int shutdown...() { int r = 0; try { Process process = Runtime.getRuntime().exec(new String[]...关于exec(new String[]{"su" , "-c" , "reboot -p"}); 换成exec(“su -c reboot -p”);,感觉系统忽略了-p参数,-c 后面跟的“reboot...-p”应该算作一条命令,如果"su -c reboot -p"的话,"-p" 就当作是su的一个参数了 我测试过程是这样的,布局添加一个按钮就可以了,填写主类代码 public class MainActivity

    14410

    java Runtime.exec()执行shellcmd命令:常见的几种陷阱与一种完善实现

    @toc背景说明我们项目要java执行命令“dmidecode -s system-uuid”获取结果,然而碰到问题,当项目一直执行好久后,Runtime.getRuntime().exec()获取结果为空...Runtime.getRuntime().exec()执行JVM之外的程序:常见的几种陷阱前言日常java开发中,有时需要通过java运行其它应用功程序,比如shell命令等。...Runtime.exec()常见的几种陷阱以及避免方法陷阱1:IllegalThreadStateException通过exec执行java命令为例子,最简单的方式如下。...执行exec后,通过Process获取外部进程的返回值并输出。...();Process proc = rt.exec(cmd);陷阱4:错把Runtime.exec()的command参数当做命令行本质上来讲,Runtime.exec()的command参数只是一个可运行的命令或者脚本

    1.4K10

    探秘Java Runtime类:深入了解JVM运行时环境,有两下子!

    常用方法Java Runtime类提供了很多有用的方法,下面简要介绍几个常用的方法:availableProcessors():返回JVM可用的处理器数目;exec():启动一个独立进程,并在此进程中执行指定的命令...;exec()exec()方法启动一个独立进程,并在此进程中执行指定的命令。...exec方法:exec方法接受一个字符串参数command,并返回一个Process对象,该对象表示执行指定命令创建的子进程。这个方法在示例中没有实现,需要进一步开发。...注意事项:Runtime.exec(String command)方法执行的命令依赖于系统环境,可能在非Windows系统上不可用或需要不同的命令。...exec():允许我们启动新进程,执行系统命令,为Java程序提供了与操作系统交互的能力。

    82741

    Java执行Shell命令的方式

    一、使用Runtime执行Shell命令 Java的Runtime类提供了一个可以执行系统命令的方法,exec()方法可以执行任何系统命令,例子如下: try {     Process process...    reader.close();  } catch (IOException e) {     e.printStackTrace();  } 该方法返回一个Process对象,该对象可以用于控制执行的命令或获取其输出信息...类似于Runtime.exec方法,这个方法也会抛出IOException,所以也需要进行异常处理。 三、注意事项 在执行Shell命令时,需要注意命令执行环境的权限问题。...也就是说,Java运行的环境是否有权限执行指定的Shell命令,否则会抛出权限错误。 另外,如果Shell命令执行时间过长,可能会导致Java主线程阻塞等待。...} }).start(); 以上就是Java执行Shell命令的方式及注意事项,希望对你有所帮助。

    4.3K40

    【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | rn换行 | Runtime 执行 Cmd 命令 )

    文章目录 Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 1、生成 bat 脚本注意事项 2、Java 执行 Cmd 命令 3、完整代码示例 4、执行结果 Java 文件生成...Windows 系统 .bat 批处理文件并自动执行 ---- 1、生成 bat 脚本注意事项 在 Windows 中生成 bat 脚本时 , 必须输出 gb2312 编码的字符串 , 否则执行时会出现中文乱码...; 另外还要注意 , WIndows 中的换行时 \r\n , 不要忽略这个问题 , 否则也会出错 ; 【错误记录】Windows 系统 bat 脚本报错 ( Java 生成 bat 脚本乱码处理 |...输出 GB2312 字符串 | Windows 中的换行时 \r\n ) 2、Java 执行 Cmd 命令 使用 Runtime.getRuntime().exec 执行 Cmd 命令 ; 通过 BufferedReader...读取执行过程中的输出信息 ; 3、完整代码示例 import java.io.*; public class Main { public static void main(String[]

    2K10

    如何在 Java 中运行 shell 命令-Java快速入门教程

    概述 在本文中,我们将学习如何从 Java 应用程序执行 shell 命令。 首先,我们将使用 .exec() 方法,其由运行时类提供。然后,我们将了解ProcessBuilder,它更易于定制。...操作系统依赖性 命令行管理程序命令依赖于操作系统,因为它们的行为因系统而异。因此,在我们创建任何进程来运行我们的 shell 命令之前,我们需要了解运行 JVM 的操作系统。...输入和输出 通常,我们需要连接进程的输入和输出流。具体来说,输入流充当标准输入,输出流充当过程的标准输出。我们必须始终使用输出流。否则,我们的流程将不会返回,并将永远挂起。...; if (isWindows) { process = Runtime.getRuntime() .exec(String.format("cmd.exe /c dir %s",...因此,我们可以在其中创建要使用的管道的整个命令并将其传递给.exec(): if (IS_WINDOWS) { process = Runtime.getRuntime() .exec

    87710

    【详解】Java调用Windows命令

    每个Java应用程序都有一个与之相关的​​Runtime​​实例,可以通过​​Runtime.getRuntime()​​方法获取这个实例。...(); // 执行命令 Process process = runtime.exec("cmd /c dir"); // 获取命令执行结果的输入流...这两个例子展示了如何在Java程序中调用Windows命令,并处理其输出。你可以根据具体需求选择合适的方法。...这两种方法都可以创建一个进程来执行外部命令,并且可以获取到该进程的标准输入、输出和错误流。...资源管理:确保关闭所有打开的流,避免资源泄露。安全性:当从用户输入构造命令时,要特别小心,以防止命令注入攻击。以上就是Java中调用Windows命令行命令的基本方法。希望这些信息对你有帮助!

    21210

    Java魔法堂:调用外部程序

    认识java.lang.Runtime#exec方法 作用:用于调用外部程序,并重定向外部程序的标准输入、标准输出和标准错误到缓冲池。功能就是和windows的“运行”一样。 ?...即通过Runtime#exec调用外部程序时,外部程序的标准输出流和标准错误流已经被Java程序接管。那么在命令中企图通过>和>>实现输出重定向显然已无效果。 ?...(采用xcopy命令复制大量文件时将会出现该问题) 解决办法就是当前的Java程序不断读取缓冲池的内容,从而为腾出缓冲池的空间。...如: Runtime r = Runtime.getRuntime(); try{ Process proc = r.exec("cmd /c dir"); // 假设该操作为造成大量内容输出...简化输入输出重定向的java.lang.ProcessBuilder 功能和java.lang.runtime#exec一样,只是java.lang.ProcessBuilder仅接收命令行以数组形式传递给

    2.1K10
    领券