如何在java程序中调用linux命令或者shell脚本

java虚拟机执行这个命令的过程是,首先克隆一条和当前虚拟机拥有一样环境变量的进程,再用这个新的进程执行外部命令,最后退出这个进程。频繁的创建对CPU和内存的消耗很大。 下面是一个调用linux命令的例子: public class Test { public static void main(String[] args) throws Exception{ String...
如何在java程序中调用linux命令或者shell脚本
  java程序是提供了这个一方法, Process pro = Runtime.getRuntime().exec(cmds);   但是一般来说,尽量去用一些其他脚本(lua,shell,python)去执行一系列linux命令比较灵活, 而且耗费资源少。但是Runtime.getRuntime().exec()这种调用方式在java虚拟机中是十分消耗资源的,即使命令可以很快的执行完毕,频繁的调用时创建进程消耗十分可观。   java虚拟机执行这个命令的过程是,首先克隆一条和当前虚拟机拥有一样环境变量的进程,再用这个新的进程执行外部命令,最后退出这个进程。频繁的创建对CPU和内存的消耗很大。   下面是一个调用linux命令的例子: public class Test { public static void main(String[] args) throws Exception{ String[] cmds = {"/bin/sh","-c","ps -ef|grep java"}; Process pro = Runtime.getRuntime().exec(cmds); pro.waitFor(); //阻塞,直到上述命令执行完 InputStream in = pro.getInputStream(); BufferedReader read = new BufferedReader(new InputStreamReader(in)); String line = null; while((line = read.readLine())!=null){ System.out.println(line); } } }   注:参数中逗/bin/sh逗 逗-c逗 是可以用shell执行指定的命令的意思这里/bin/sh -c ps -ef|grep java,会执行ps linux命令
2017-04-17
mengvlog 阅读 8 次 更新于 2025-07-18 21:30:33 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部