java jsch 调用shell_Java-Jsch-Shell脚本执行后退出
我正在尝试使用Jsch编写Java程序,在该程序中,我想使用该程序开始执行Shell脚本,并在执行完Shell脚本后退出该程序.
String userName = "";
String hostName = "";
String password = "";
JSch javaSecureChannel = new JSch();
Session jschSession = null;
Channel jschChannel = null;
try {
jschSession = javaSecureChannel.getSession(userName, hostName, 22);
Properties configurationProperties = new Properties();
configurationProperties.put("StrictHostKeyChecking", "no");
jschSession.setConfig(configurationProperties);
jschSession.setPassword(password);
jschSession.connect();
jschChannel = null;
jschChannel = jschSession.openChannel("shell");
jschChannel.setOutputStream(System.out);
File shellScript = createShellScript();
FileInputStream fin = new FileInputStream(shellScript);
byte fileContent[] = new byte[(int) shellScript.length()];
fin.read(fileContent);
InputStream in = new ByteArrayInputStream(fileContent);
jschChannel.setInputStream(in);
jschChannel.connect();
while(true){
//if(jschChannel.isClosed)
if(jschChannel.getExitStatus() == 0){
System.out.println("exit-status: " + jschChannel.getExitStatus());
break;
}
try{
Thread.sleep(1000);
}catch(Exception ee){
ee.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
jschChannel.disconnect();
jschSession.disconnect();
System.out.println("Done...!!!");
createShellScript方法如下.
String temporaryShellFileName = "shellscript.sh";
File fileStream = new File(temporaryShellFileName);
try {
PrintStream outStream = new PrintStream(new FileOutputStream(fileStream));
outStream.println("#!/bin/bash");
outStream.println("cd /u01/app/java/gids4x/Test");
outStream.println("Test_with_NULL.sh");
outStream.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
使用上面的代码,我可以开始执行Shell脚本.但是,即使在程序执行完成之后,即在脚本执行完成之后,我也不会终止程序执行.
您能否建议需要准确执行的操作?
java jsch 调用shell_Java-Jsch-Shell脚本执行后退出相关推荐
- Linux shell脚本执行后出现语法错误: 未预期的文件结尾
Windows环境下编写了一个shell脚本,上传到Linux环境中执行,Linux shell脚本执行后出现 语法错误: 未预期的文件结尾. 出现了此错误提示,进行了如下的检查:1.检查Shell脚 ...
- java expect_Java调用expect、shell脚本时,明文密码处理与Expect使用举例
Expect概述 Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] software suite for automating interactive tools) Ex ...
- Java 调用Shell脚本执行 SCP命令提示Authorized users only. All activity may be monitored and reported.
近期做了个小项目主要是关于数据处理这方面的. 在Java后端调用服务器上Shell脚本,而Shell脚本执行时一条Scp执行结果的提示报 Authorized users only. All acti ...
- kettle脚本Linux执行,kettle在linux下面用于shell脚本执行:转换或者作业
1 将windows下面创建好的转换,放到Linux某一个文件夹下面.如:把0816_em.ktr文件放到/home/cfj/kettle/testdemo下面. 注意里面的数据库用户名和密码可能需要 ...
- hive运行mysql脚本_用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql
1:创建shell脚本 1 touch sqoop_options.sh2 chmod 777 sqoop_options.sh 编辑文件 特地将执行map的个数设置为变量 测试 可以java代码 ...
- shell脚本执行及配置文件
linux之shell脚本执行及配置文件 bash脚本执行方法: 1 解释器直接运行/usr/bin/bash bash FOO.sh2 使用路径运行脚本(需要有x权限)chmod +x FOO.sh ...
- shell脚本执行返回的状态码
http://www.cnblogs.com/MyEyes/archive/2012/01/12/2320529.html Linux下一条命令或一个进程执行完成会返回一个一个状态码. 0 === ...
- linux shell 执行目录,bash shell脚本执行的几种方法
bash shell 脚本执行的方法有多种,本文作一个总结,供大家学习参考. 假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一: ...
- linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式
主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...
最新文章
- MapReduce: 提高MapReduce性能的七点建议【译】
- 我为什么看好IPFS
- golang 返回值报错 cannot use nil as type string in return argument
- arduino上传项目出错_Arduino入门前你该知道的事儿
- [译] 解密 Mapbox 卫星影像处理神器 Robosat
- 【渝粤题库】广东开放大学 物业财税管理基础 形成性考核 (2)
- [html] 页面的重绘和回流是什么?
- Python 爬虫基础 - 浏览器伪装
- 喝最烈的酒、挖最大的DONG——工具与技巧篇
- python3爬取教务系统_python requests模拟登陆正方教务管理系统,并爬取成绩
- java 可插拔注解_20200311 8. 注解和可插拔性
- Crontab- Linux必学的60个命令
- 解决OpenCV JavaCameraView相机preview方向问题
- 11.8 scrum report
- Canal.deployer 启动报错说CHARACTER SET 'utf8' COLLATE 'utf8_unico', expect null,rkdown编辑器
- Several ports (8005, 8080, 8009) required by demo are already in use. The server may already be runn
- 饭菜先生推出首款可随心定制的电子菜谱
- 不愧是阿里P8!深入理解Java虚拟机pdf百度云
- NancyFX 第五章 Nancy 路由
- 安装完Ubuntu 18.04之后要做的几件事
热门文章
- 年底促销海报还没准备好?电商美工看这里
- 创意合成广告欣赏:让人脑洞大开的设计
- cdn共振为什么要拍身份证_干货 | 拍婚纱照为什么要提前预约呢?
- LIB BFD, the Binary File Descriptor Library
- 软件开源是如何赚钱?
- DPDK如何释放大页内存(巨页内存hugepage)
- C语言CURL实现HTTP POST、GET、PUT
- onvif device manager 找不到ipc_常见网络摄像机IP搜索不到可能导致的问题及解决办法汇总...
- javascript之Map 和 Set
- shadow阴影属性