JAVA调用系统命令:python、shell等
实际项目开发场景中,可能会用到java项目调用系统命令的需求,如调用python或者shell脚本
可以参考如下例子,例子来源于ambari源码:
\ambari\ambari-server\src\main\java\org\apache\ambari\server\security\CertificateManager.java
/**
* Runs os command
*
* @return command execution exit code
*/
protected int runCommand(String command) {
String line = null;
Process process = null;
BufferedReader br= null;
try {
process = Runtime.getRuntime().exec(command);
br = new BufferedReader(new InputStreamReader(
process.getInputStream(), Charset.forName("UTF8"))); while ((line = br.readLine()) != null) {
LOG.info(line);
} try {
process.waitFor();
ShellCommandUtil.logOpenSslExitCode(command, process.exitValue());
return process.exitValue(); //command is executed
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
} return -;//some exception occurred }
JAVA调用系统命令:python、shell等的更多相关文章
- nodejs调用脚本(python/shell)和系统命令
每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,文档见http://nodejs.org/api/ch ...
- Nodejs中调用系统命令、Shell脚本的方法和实例
每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,文档见http://nodejs.org/api/ch ...
- JAVA调用系统命令或可执行程序--返回一个Runtime运行时对象,然后启动另外一个进程来执行命令
通过 java.lang.Runtime 类可以方便的调用操作系统命令,或者一个可执行程序,下面的小例子我在windows和linux分别测试过,都通过.基本原理是,首先通过 Runtime.getR ...
- java—— 调用系统命令
调用所在环境的命令 链接:http://blog.csdn.net/yy6060/article/details/6311916 1 import java.io.*; 2 class Exec{ 3 ...
- java 调用启动远程shell脚本,启动spark
1 依赖 <!--远程调用shell--> <dependency> <groupId>ch.ethz.ganymed</groupId> <ar ...
- Java 调用系统命令
ProcessBuilder import java.io.File; import java.io.IOException; import java.io.InputStream; import j ...
- 【Java】如何调用系统命令
如何通过Java调用系统命令,如ping 127.0.0.1.java -version等? > 简单的例子 package com.nicchagil.callpython.No001无参数调 ...
- Java调用Python脚本
今天遇到Java调用一个Python脚本的问题,纠结了大半天,遇到各种问题.网上搜索的大部分都是用jython,但是我想要调用的python脚本里有import urllib,这个urllib也不是什 ...
- python调用系统命令 shell命令
使用python调用系统命令,基本有3种选择: 1. 使用os模块的system方法 import os os.system('ls') 2. 使用os模块的popen方法 import os os. ...
随机推荐
- redis里能不能针对set数据的每个member设置过期时间
不能.可以用sorted set,把要过期的member和key的信息放在sorted set的member里,把过期时间放在score中.跑个任务用zrangebyscore遍历就行了.用sorte ...
- zabbix监控nginx,mysql,java
zabbix 支持的主要监控方式(1)agent代理程序 在Agent监控方式下,zabbix-agent会主动收集本机的监控信息并通过TCP协议与zabbix-server传递信息.Agent 监控 ...
- xml报文标签替换正则表达式
写在前面 需求是把所有标签中的信息替换成指定内容 例如: <transName>交易名称</transName><aaa></aaaa><tran ...
- SoapUI: 从属性变量里面读取值, 把string 转换成arraylist
- SpringBoot项目从Git拉取代码并完成编译打包启动的sh自动脚本
操作步骤: 1.进入/home/servers/codes/xxxx-dev/目录,从git上将项目clone下来: 2.确保/usr/local/xxx/xxxx-dev目录存在: 3.确保sh脚本 ...
- Html表格和表头文字不换行
[本文出自天外归云的博客园] 希望表头中的文字和表格中的文字不换行,只需要在th和td标签加上: nowrap="nowrap"
- SpringBoot入门-集成mybatis(四)
pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spr ...
- [问题解决]Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
写了一个脚本读取docker日志,发生报错:Got permission denied while trying to connect to the Docker daemon socket at u ...
- GhostVLAD for set-based face recognition
GhostVLAD for set-based face recognition 中提到了文章解决的是template-based face recognition. VLAD: vector of ...
- 爬虫相关-scrapy框架介绍
性能相关-进程.线程.协程 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢. 串行执行 import requests def fetc ...