基于JAVA执行shell指令,通常的代码范例为:
Process process = Runtime.getRuntime().exec("jps -v"); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); while (true) { String line = reader.readLine(); if(line == null) { break; } System.out.println(line); } process.destroy(); reader.close();
这么执行并没有太大的问题,但是如果希望它执行“多个指令”,上述方式总是获取不到信息,无信息输出,比如执行“jps -v | grep AppMain | awk ${print $2}”。
徘徊了很久,后来通过使用:
process.getErrorStream();
发现打印出来一些信息,提示的内容大概是指令的参数集不合法。归因于我们使用的方式不对,因为runtime.exec()方法不能执行多个指令。所以我们需要换一种比较标准的方式:
String[] command = {"ssh","127.0.0.1","ps","-ef","|","grep","java"}; ProcessBuilder pb = new ProcessBuilder(); pb.command(command); //very important,if error,message will output too. pb.redirectErrorStream(true); Process process = pb.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); while (true) { String line = reader.readLine(); if(line == null) { break; } System.out.println(line); } process.destroy(); reader.close();
相关推荐
java调用shell 包含简单的编写shell文件 调用含有参数的shell文件
java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本
在Java程序中调用Unix/Linux主机上的Shell命令,并返回相应执行结果。
因为我在linux环境下执行shell脚本时sqlldr命令和sqlplus命令是正常执行的,没有任何问题,但是在java代码中调用脚本时却报错,所有排除了其他原因,只可能是环境变量的问题, 于是我把oracle的所有环境变量直接复制...
NULL 博文链接:https://qindongliang.iteye.com/blog/2072760
利用Runtime.execute方法,我们可以在Java程序中运行Linux的Shell脚本,或者执行其他程序
我们选择后一种,即当完成外币资金的调度工作后,用Java的OutputStreamWriter来生成一个Txt文件,然后用Java来调用Shell脚本,在Shell脚本中完成FTP文件到Kondor系统的工作。
java连接linux,执行shell命令的工具类 sshxcute.jar
shell,bat脚本运行java程序, shell,bat脚本运行java程序,
linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...
shell脚本启动Java程序测试工程
java-telnet连接远程服务器并执行shell命令 具体代码 java-telnet
sshxcute 就是这样一个框架工具集,它基于 JSCH 构建,允许工程师利用Java 代码通过 SSH 连接远程批量执行 Linux/UNIX 系统上的命令或者脚本,同时加入了判断成功与否,取回输出等多种实用功能。sshxcute 不管是针对...
基于sshConnect的linux服务器的shell命令调用,并获取命令返回结果的实例。亲测有效!
java连接服务器,并执行Linux服务器上的命令或脚本
详细的linux shell脚本启动java代码类。
JAVA实现远程登陆执行shell脚本。上传文件到远程服务器,下载远程服务器资源。 ShellExecutor exe = new ShellExecutor("192.168.1.1", 22, "USERNAME", "PASSWORD"); if (exe.login()) { ResultEntity ...
java执行shell或bat脚本,Java可以使用三种方式来执行.bat或.shell脚本文件:使用Runtime.exec()、使用ProcessBuilder、使用第三方工具包commonsexec.jar
linux shell脚本启动java。 ---------------------------------------- Windows编辑的sh,在linux会报错: shell unexpected end of file 解决办法: vim test.sh :set fileformat=unix :wq ----------------------...