在实际项目中,JAVA有时候需要调用C写出来的东西,除了JNI以外,我认为一种比较好的方法是JAVA调用Shell。...先把C写出来的make成可执行文件,然后再写一个shell脚本执行该可执行文件,最后是JAVA调用该shell脚本。...JAVA调用很简单,例子如下: 首先是shell脚本 /users/bmcmsend_linux/server/bin/msend -n @10.26.202.27:1828#mc -a TRKUTIL_EV...=ESB#001#0001;CHARDATE='2016-03-30 08:53:43';CYCLEID=ESB#001;MSG=wx" 然后是JAVA调用代码 import java.io.BufferedReader...需要注意的是,在调用时需要执行waitFor()函数,因为shell进程是JAVA进程的子进程,JAVA作为父进程需要等待子进程执行完毕。
Exception e) { e.printStackTrace(); } logger.info("数据刷新成功"); } 上述代码中,下面这段就是调用...shell执行的代码。
说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总结一下...Shell中函数的调用方法。...那大家可能就郁闷了,函数调用或多或少总是会需要一些参数,那么这些参数要怎么传递进来呢?...首先,程序会要求你输入一个数学,然后调用函数来进行输出的功能。...这点与在静态语言中的函数参数传递是很不同的,因为在Shell中变量的使用并不需要先定义,所以要使用变量,让Shell知道它是一个变量,并要传递它的值时,就是用$n,而不能直接用n,否则只把n当作一个字符来处理
但是服务器是架设在linux系统上的,对于多网口,在获取ip时就产生了很大的问题。下面是在windows系统上,java获取本地ip的方法。...好吧,看看上面的打印,你就知道了,有多个ip,而且在linux上的情况更复杂。这种比较麻烦的情况,被我排除了,我使用了一种新的方法,就是linux上的shell脚本。...语法代码如下: #linux中的shell脚本的学习(so easy) #1.注释 #在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。 #我们真诚地建议您在程序中使用注释。...在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。...然后用java调用,一下是java在linux上调用shell脚本的命令: /** * @see 执行脚本获取linux上的ip * @author Herman.Xiong * @date 2014
背景平台开发经常需要使用 shell 脚本调度大数据的组件,在使用 springBoot 开发项目时也是如此,为了保证子 shell 的执行时间可控,需要设置超时时间,如果 shell 无法在给定时间内返回...实践shell 脚本say_hello.sh#!...(StreamDecoder.java:178)at java.io.InputStreamReader.read(InputStreamReader.java:184)at java.io.BufferedReader.fill...(BufferedReader.java:161)at java.io.BufferedReader.readLine(BufferedReader.java:324)at java.io.BufferedReader.readLine...因此需要等待一小段时间,等待子进程被终结 private void destroy(boolean force) { switch (platform) { case LINUX
java调用shell脚本的方法 1、通过ProcessBuilder进行调度,这种方法比较直观,而且参数的设置也比较方便。...= 0) { } return; 2、直接通过系统Runtime执行shell,特别是参数方面,必须自己加空格分开。 因为exec会把整个字符串作为shell运行。...p = Runtime.getRuntime().exec(SHELL_FILE_DIR + RUNNING_SHELL_FILE + " "+param1+" "+param2+" "+param3)...; p.waitFor(); 以上就是java调用shell脚本的方法,希望对大家有所帮助。...更多Java学习指路:Java基础 本教程操作环境:windows7系统、java10版,DELL G3电脑。
由于有不少java代码,格式可能在手机上显示比较乱,可以点击最下面阅读原文查看比较整洁的格式 (方式一)适合Java调用本地的Liunx无须任何依赖包 Java代码 /*** * 第一种方法...*/ public static void exeCmd() throws Exception{ Runtime r = Runtime.getRuntime(); //执行linux...命令,不关心返回结果,此处,可以执行一个shell脚本,或者python脚本 Process p = r.exec("tesseract 12.jpg ko "); p.waitFor...System.out.println("result: "+sb.toString()); b.close(); return sb.toString(); } (方式二)适合远程调用不在同一台机器上的...Linux命令,这种方式需要使用 开源的jsch , 官网:http://www.jcraft.com/jsch/ , maven依赖如下: Java代码
阅读大概需要5分钟 zenRRan: 昨天应导师要求,需要写很多python脚本在linux下,这样就会用到如何在python下调用linux命令。 这里有篇比较全的文章,推荐给大家!...地址: https://blog.csdn.net/longerzone/article/details/17889969 导读 有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount...那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法。...不建议使用此方法 long@zhouyl:/tmp/tests$ python Python 2.7.3 (default, Jan 2 2013, 16:53:07) [GCC 4.7.2] on linux2...此外,这也只能让你运行简单的shell命令而且不能运行外部程序。 4.2.
参考链接: 使用Python执行Shell命令 system() 其中最后一个0是这个命令的返回值,为0表示命令执行成功。使用system无法将执行的结果保存起来。 ...在python中调用shell脚本 hello.sh 下面的512是返回的状态码,如果eixt 0时则返回的是0. ...shell脚本使用python脚本的参数 写一个hello.sh脚本,需要传入两个参数: 执行结果如下: 在python脚本中调用shell脚本,并传入参数,注意参数前后要有空格 执行python
前言:在python程序里面难免会用到shell命令,在python调用shell脚本也不是很难,记录了一下!...command) sample import os print os.system("service apache2 status") ---- popen方不仅仅返回结果,还返回一个类文件对象,通过调用该对象的...output) commands.getstatusoutput(command) #只返回输出结果 commands.getoutput(command) #调用了...commands.getoutput("ls") ---- ****通过subprocess模块**** subprocess与system相比的优势是它更灵活 #只返回结果 subprocess.call("command", shell...=True) sample import subprocess print subprocess.call("service apache2 status", shell=True)
user.name}/${examplesRoot}/apps/ssh workflow.xml shell-wf..."> shell-ssh"/> shell-ssh"> shell-node"/> shell-node"> shell xmlns="uri:oozie:shell-action:1.0"> ... Shell
Linux/Unix 下除了调用SQL之外,调用PL/SQL也是DBA经常碰到的情形,下面主要通过一些示例给出如何在shell下面来调用pl/sql。 ...其它相关的参考: Linux/Unix shell 脚本中调用SQL,RMAN脚本 Linux/Unix shell sql 之间传递变量 1、将pl/sql代码逐行输入到临时文件 robin@...MAIL_SUB -f $MAIL_FM -t $MAIL_LIST -m $MAIL_SUB exit else echo ${DUMP_DIR} fi exit #注,上面的这个并不是调用...#同时将sql执行的返回结果直接赋予给shell变量 robin@SZDB:~/dba_scripts/custom/bin> chmod u+x shell_call_plsql_3.sh robin.../shell_call_plsql_3.sh CNBO1 /u02/database/CNBO1/bdump
背景 使用java实现的web端,web端相应用户的界面操作,使用java调用bash实现的shell脚本进行实际的操作,操作完成返回执行结果给web 界面显示。 现象: Java 进程阻塞。...使用ps命令可以看到被调用的shell 的执行进程状态为S !...Java程序在调用Runtime.getRuntime().exec(jyName)之后,linux 会创建一个进程用于执行这个程序,该进程与jvm之间使用三个管道进行链接 标准输入、标准输出、标准出错...我们的java 程序也就阻塞在了 process.waitFor(); 解决办法 所调用的程序中不要有太多的输出到标准出错 、标准输出中。...www.ituring.com.cn/article/details/130 http://siye1982.iteye.com/blog/592405 http://www.linuxidc.com/Linux
获取java版本号 $ java -version 2>&1 | sed '1!...d' | sed -e 's/"//g' | awk '{print $3}' 1.8.0_222 获取java类型(openjdk)及版本号 $ java -version 2>&1 | sed '1...d' | sed -e 's/"//g' -e 's/version//' openjdk 1.8.0_222 说明: 在shell中要获取java版本号最基本的思路就是从java -version...的输出内容中解析出版本号,但是java -version 的输出并不是输出到默认的stdout,而是stderr,所以要想从java -version 的输出解析出java版本号,就要将java -version...d'的含义是删除除第一行外的所有内容,在这里就是只保留java -version输出的第一行内容java version "1.8.0_111" 接下来 sed -e 's/"//g'就简单了,就是删除字符串中的
目录 1 代码实现 1 代码实现 public class CommandUtil { public static String execuCmd(...
在写python脚本的时候,经常需要调用系统命令,常用的python调用系统命令的方法主要有subprocess.call和os.popen。...import subprocess import traceback cmd='hadoop fs -ls hdfs://xxxxx' try: e=subprocess.check_call(cmd,shell...) .......... def call(*popenargs, **kwargs): return Popen(*popenargs, **kwargs).wait() #call方法调用...wait def check_call(*popenargs, **kwargs): retcode = call(*popenargs, **kwargs) #调用call,返回返回值 ...process = subprocess.Popen(stdout=subprocess.PIPE,shell=True,stderr = subprocess.PIPE,*popenargs, **kwargs
什么是shell? shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器) 。它接收用户输入的命令并把它送入内核去执行。起着用户与系统之间进行交互的作用。 ?...shell的功能: 命令行解释 命令的多种执行顺序 通配符 命令补全、别名机制、命令历史 I/O重定向 管道 命令替换(` ` 或$( ) ) shell编程语言 shell可以执行——内部命令、外部命令...shell命令分为: 内部(内置)命令 内部命令是shell本身包含的一些命令,这些内部命令的代码是整个shell代码的一个组成部分; 内部命令的执行是shell通过执行自己的代码中的相应部分来完成的...外部(外置)命令 外部命令的代码则存放在一些二进制的可执行文件或者shell脚本中; 外部命令执行时,shell会在文件系统中指定的一些目录去搜索相应的文件,然后调入内存执行。...shell变量PATH中 ?
Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量($#,$@,$0,$1,$2)的含义解释 变量说明: $$ Shell本身的PID(ProcessID) $!...Java程序调用带参数的shell脚本返回值实现具体代码 package com.javen.kit; import java.io.IOException; import java.io.InputStreamReader...; import java.io.LineNumberReader; import java.util.ArrayList; import java.util.List; public class ShellKit...test.sh,有两个参数parm1,parm2,java调用的方法如下: String[] cmd = {"/bin/sh","-c","test.sh parm1 parm2"}; Runtime.getRuntime.../test.sh The complete list is Javen205 The complete list is 572839485 程序调用 public class ShellController
要求在页面查询到5000条数据,为了方便插入,用shell脚本写curl命令调用自己写的代码接口; 脚本如下: #!
1 变量的分类 在Linux中,变量分为环境变量 和 局部变量。 环境变量能被子进程继承,而局部变量只能在当前进程中使用。...1.1 常见的环境变量 系统提供了一些默认的环境变量,如下: HOME:用户主目录 当我们使用cd 或cd ~时就会调用这个环境变量找到用户主目录。...SHELL:当前使用的SHELL HISTSIZE:历史命令的最大条数 MAIL:当前用户的邮箱目录 PATH:可执行文件的查找路径。...2.3 取消变量 unset 变量名 3 环境变量 自定义变量相当于局部变量,只能在当前shell中使用;而环境变量相当于全局变量,可以在子shell中使用。...5 变量类型:declare/typeset Linux中的变量一共有5种类型,分别是:字符、整型、只读、环境变量。