Java执行shell遇到的各种问题】的更多相关文章

Linux 系统下采用 Java 执行 Shell 脚本,直接上代码: package com.smbea.demo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * 执行 Shell 脚本 * @author hapday * @date 2017年3月14日 @Time 下午2:28:22 */ public class ChmodShell…
Java执行shell脚本并返回结果两种方法的完整代码 简单的是直接传入String字符串,这种不能执行echo 或者需要调用其他进程的命令(比如调用postfix发送邮件命令就不起作用) 执行复杂的shell建议使用String[]方式传递(对外可以封装后也传入String字符串). /** * 运行shell脚本 * @param shell 需要运行的shell脚本 */ public static void execShell(String shell){ try { Runtime.g…
BPMN中存在由系统执行的脚本任务,shell脚本任务也是该系统任务脚本中的一种,利用的也是由java执行shell脚本. 代码中的ProcessBuilder类,为java.lang.ProcessBuilder.可以参考javaAPI或者博客https://blog.csdn.net/u013256816/article/details/54603910 当然,也可以用java.lang.Runtime类的exec()方法执行shell脚本. package com.alphajuns; i…
有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用.涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的. 废话不多说,java如何执行shell命令?自然是调用java语言类库提供的接口API了. 1. java执行shell的api 执行shell命令,可以说系统级的调用,编程语言自然必定会提供相应api操作了.在java中,有两个api供调用:Runtime.exec(), Process API. 简单使用如下: 1.1. Runti…
最新内容建议直接访问原文:http://www.trinea.cn/android/android-java-execute-shell-commands/ 主要介绍Android或Java应用中如何以默认用户或root用户执行Shell命令,ShellUtils的API介绍.使用及使用场景(如静默安装和卸载.修改hosts文件.拷贝文件).使用纯Java实现,所以对Java程序同样适用. 很多朋友在使用TrineaAndroidCommon@Github中的ShellUtils工具类了,那就大…
1.判断子进程是否执行结束 有的时候我们用java调用shell之后,之后的操作要在Process子进程正常执行结束的情况下才可以继续,所以我们需要判断Process进程什么时候终止. Process类提供了waitFor()方法.该方法导致当前线程等待,直到Process线程终止. Process.waitFor()是有一个int类型返回值的,当返回值为0的时候表Process进程正常终止.否则一般是脚本执行出错了(我遇到的一般是这种情况). 2.Process.waitFor()导致当前线程…
一.介绍 有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本.而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法: Process exec(String command) 在单独的进程中执行指定的字符串命令. Process exec(String[] cmdarray) 在单独的进程中执行指定命令和变量. Process exec(String[] cmd…
正常来说java调用shell命令就是用 String[] cmdAry = new String[]{"/bin/bash","-c",cmd} Runtime.getRuntime().exec(cmdAry); 实际上就是创建个子进程去执行这个命令. 问题来了: 如果我执行下面这句命令 exp system/manager buffer=64000 file=/home/oracle/beifen/beifen.dmp FULL=Y 这种输出日志量特别大的命令…
1.脚本test.sh,置于/Users/hdwang目录下 #!/bin/sh cd /Users/hdwang echo ls:`ls` ;i<=;i++)); do + ); sleep 1s done echo jps:`jps -l` 2.java执行test.sh public class ExecShell { public static void main(String[] args) { try { Process pro = Runtime.getRuntime().exec…
Methods ProcessBuilder.start() 和 Runtime.exec() 方法都被用来创建一个操作系统进程(执行命令行操作),并返回 Process 子类的一个实例,该实例可用来控制进程状态并获得相关信息. The Runtime.exec(String) method takes a single command string that it splits into a command and a sequence of arguments. Process proces…
java程序中要执行linux命令主要依赖2个类:Process和Runtime首先看一下Process类:ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,  该实例可用来控制进程并获得相关信息.Process 类提供了执行从进程输入.执行输出到进程.等待进程完成.  检查进程的退出状态以及销毁(杀掉)进程的方法.  创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程…
转自:http://blog.csdn.net/zlpdaisy/article/details/6134314 用Runtime.getRuntime().exec()方法执行Linux的一个Shell脚本时,报 Cannot run program "./script/abc.sh": java.io.IOException: error=2, No such file or directory] java.io.IOException: Cannot run program &q…
1.获取硬盘序列号: 新建shell脚本文件: identifier.sh, 内容为: diskdata=`fdisk -l` diskleft=${diskdata#*"identifier: "} identifier=${diskleft%%" Device Boot"*} echo ${identifier} 调整identifier.sh的权限: chmod +x identifier.sh 使用Java代码去调用该shell脚本获取结果 private…
1:load_data_test.sh #!/bin/sh load_data_log=/mnt/load_data_test/load.log load_sql="LOAD DATA LOCAL INFILE '/mnt/load_data_test/${file}' IGNORE INTO TABLE t_test CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY…
try { Process p =Runtime.getRuntime().exec("chmod 777 /home/bomb/MoveToy/WebRoot/a.sh " ); p.waitFor(); Process pro = Runtime.getRuntime().exec(" /home/bomb/MoveToy/WebRoot/./a.sh " + num); pro.waitFor(); System.out.println("run&q…
Runtime.getRuntime().exec http://blog.csdn.net/heyetina/article/details/6555746…
paip.执行shell cmd 命令uapi java php python总结 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax D:\wamp\php\php.exe  E:\DedeCMS-V5.7-UTF8-SP1-Full\uploads\del_some_dir.php E:\OfflineExplorerPortable\Download budejie,xi…
数据库的数据同步软件sqoop 数据同步 关系型数据库到大数据平台 任务:sqoop 是批量导入数据太慢,如何做到实时的数据同步 实时的数据同步工具: canal 阿里开源的一个数据库数据实时同步的软件,解析mysql的binlog日志进行数据同步 streamset 数据库的数据同步工具 flume 采集mysql的变化的数据,github上面有这样的一个项目,自定义source实时抽取mysql的数据 =============================================…
JAVA执行远端服务器的脚本 问题描述 实现思路 技术要点 代码实现 问题描述 工作中遇到这样一个问题,我们的应用为了实现高可用会采取双机部署,拓扑图大致如下: 这种方案可以简单的保证高可用,即便应用服务器或者数据库服务器其中一台宕机,整个系统的功能还是不会受到影响,但是这里会出现一个问题:例如当应用服务器1宕机了,所有的负载集中到应用服务器2上以后,因为系统功能是正常的,而作为产品交付客户后也没有现场的实施或运维人员在,我们并不知道有一台服务器已经宕机了,所以,我们要实现一个简单的监控,去查看…
Java执行Dos-Shell脚本 1.介绍 2.调用shell脚本 2.1 获取键盘输入 2.2 构建指令 2.3 Java代码 3.Java调用Shell并传入参数 4.Java调用远程的Shell脚本 相关参考内容原文地址: bldong:Java 执行Shell脚本指令 1.介绍 在Linux中运行Java程序时,需要调用一些Shell命令和脚本.而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下…
前言 此程序需要ganymed-ssh2-build210.jar包(下载地址:http://www.ganymed.ethz.ch/ssh2/) 为了调试方便,可以将\ganymed-ssh2-build210\src下的代码直接拷贝到工程里, 此源码的好处就是没有依赖很多其他的包,拷贝过来干干净净. 简介 目的:是执行远程机器上的Shell脚本;远程机器IP:***.**.**.***用户名:sshapp密码:sshapp登录后用pwd命令,显示当前目录为:/sshapp.在/sshapp/…
1.java远程执行shell脚本类 package com.test.common.utility; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import org.apache.commons.io.IOUtils; import org.apache.commons.…
原文地址:http://www.open-open.com/lib/view/open1384351384024.html 1. SSH简介         SSH是Secure Shell的缩写,一种建立在应用层和传输层基础上的安全协议.SSH在连接和传送过程中会加密所有数据,可以用来在不同系统或者服务器之间进行安全连接.SSH提供两种的安全验证方式:基于密码的认证和基于密匙的认证.其中,基于密码的认证比较简单,只要知道远程主机的用户名和密码,就可以进行登录.基于密匙的认证比较麻烦,而且连接比…
在java中执行shell有好几种方式:第一种(exec)方式一 public static synchronized void runshell2() {    File superuser = new File("/system/bin/superuser");      if (superuser.exists())    {       // return device to original state       Process process;       try    …
最近项目中需要用到java语言来执行shell命令,在网上查了资料, 把自己在项目里用到的命令整理成了工具类开放给大家,希望对大家有用.功能不全,后期我会慢慢添加整合. public class ShellUtils { public static final String COMMAND_SU = "su"; public static final String COMMAND_SH = "sh"; public static final String COMMA…
pom.xml jar 包支持 <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.53</version> </dependency> 代码: package com.spring.bean.annotation; import java.io.BufferedReader; import…
1. SSH简介         SSH是Secure Shell的缩写,一种建立在应用层和传输层基础上的安全协议.SSH在连接和传送过程中会加密所有数据,可以用来在不同系统或者服务器之间进行安全连接.SSH提供两种的安全验证方式:基于密码的认证和基于密匙的认证.其中,基于密码的认证比较简单,只要知道远程主机的用户名和密码,就可以进行登录.基于密匙的认证比较麻烦,而且连接比较耗时,这里不详细介绍.         有很多基于SSH协议的客户端,例如:PuTTY.OpenSSH.Xshell 4等…
在liunx上写了一个shell脚本,想通过java去调用这个shell脚本,不知道怎么去调用,在网上说使用process这个进程方式,但是我执行机和我shell脚本都不在同一台电脑,老大说java中可以连接ssh,执行shell脚本,以下代码来自他们以前的项目 public class SSH { static Connection conn = null; static String hostname = "XXXiP地址2"; static String username = &…
之前在使用Jenkins执行远程shell脚本时,出现提示java: command not found:多方查找原因后发现是因为远程执行shell脚本时,不会自动加载环境变量,导致出现此错误,解决方案就是在脚本前加上这段代码即可source /etc/profile; source /etc/profile cd /root/shell sh erp-shop-h5-server.sh…
Java 实现 ssh命令 登录主机执行shell命令 1.SSH命令 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台.SSH在正确使用时可弥补网络中的漏洞.SSH客户端适用于多种平台.几乎…