java调用linux管道信息的误区】的更多相关文章

String cmd = "ps -ef | grep "XXX" " 使用Runtime rt = Runtime.getRuntime();类时 rt.exec(cmd);执行的仅仅是ps -ef命令, 如果需要正确执行管道信息,命令需要改成: rt.exec(new String[] {"/bin/sh", "-c", cmd});即可.…
java调用Linux执行Python爬虫,并将数据存储到elasticsearch中 一.以下博客代码使用的开发工具及环境如下: 1.idea: 2.jdk:1.8 3.elasticsearch:5.2.0 4.Linux 5.Python 6.maven 二.maven坐标: <!--java连接ulinix脚本架包--> <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>…
一.Java调用Linux系统的命令非常简单 这是一个非常常用的调用方法示例: public String executeLinuxCmd(String cmd) { System.out.println("got cmd job : " + cmd); Runtime run = Runtime.getRuntime(); try { Process process = run.exec(cmd); InputStream in = process.getInputStream();…
1.编写java类 public class Abc { static { System.loadLibrary("abc"); } public native static String getAbc(); public static void main(String s[]) { System.out.println(getAbc()); } } 终端执行: java Abc.java 再执行:javah Abc 生成Abc.h文件 生成Abc.h的头文件,内容如下: /* DO…
调用方式 Java调用linux命令执行的方式有两种,一种是直接调用linux命令,一种是将linux命令写到.sh脚本中,然后调用脚本执行. 详细说明 直接调用:使用java中lang包下面的Runtime类和Process类,其中Runtime类中的Runtime.getRuntime().exec(linux command)方法可以直接执行linux命令,而Process类可以接收Runtime.getRuntime().exec()类的返回值,并提供了waitFor()方法和destr…
在idea里面,java代码:Runtime.getRuntime().exec("ps -aux") 是因为默认是用windows平台运行了,所以报错,得改成调用Linux平台运行: String[] cmd = new String[3];cmd[0] = "C:/Program Files (x86)/Git/bin/sh.exe" ;cmd[1] = "-c" ;cmd[2] ="D:/shell.sh";Proces…
问题的提出: shell脚本要做离线的数据处理任务 java调用脚本,将这种处理任务封装成webservice 特点: shell处理单个时间长 每次要处理文件量大 这里目前只做调用分析: 原来的: private void runShell(String cmd){ try{ logger.info("the command "+cmd); // create a process for the shell ProcessBuilder pb = new ProcessBuilder…
这里用 sh -c "命令" 的方式是因为java里只能这么用,管道这边java处理不了,所以只能一次执行一条命令,但是在linux里用 sh -c 的方式返回的awk处理过的结果是有问题的,比如下面: [root@ ~]# sh -c "ping www.baidu.com -c 3 | awk -F '[ ]+' 'NR==8 {print $4}'" rtt min/avg/max/mdev = 3.514/3.778/4.232/0.329 ms 但是在ja…
该篇博客主要是java代码,如需相应脚本及java连接elasticsearch工具类代码,请移步到上一篇博客(https://www.cnblogs.com/chenyuanbo/p/9973685.html) 一.创建连接执行Linux脚本工具类 package com.yjlc.platform.utils.Elasticsearch; import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.StreamGobbler; import jav…
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader; public class Main{ public static void main(String[] args) { //得到Java进程的相关Runtime运行对象 Runtime runtime = Runtime.getRuntime(); try { //利用exec()方法执行shell 命令 ls -a…