我正在尝试使用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脚本执行后退出相关推荐

  1. Linux shell脚本执行后出现语法错误: 未预期的文件结尾

    Windows环境下编写了一个shell脚本,上传到Linux环境中执行,Linux shell脚本执行后出现 语法错误: 未预期的文件结尾. 出现了此错误提示,进行了如下的检查:1.检查Shell脚 ...

  2. java expect_Java调用expect、shell脚本时,明文密码处理与Expect使用举例

    Expect概述 Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] software suite for automating interactive tools) Ex ...

  3. Java 调用Shell脚本执行 SCP命令提示Authorized users only. All activity may be monitored and reported.

    近期做了个小项目主要是关于数据处理这方面的. 在Java后端调用服务器上Shell脚本,而Shell脚本执行时一条Scp执行结果的提示报 Authorized users only. All acti ...

  4. kettle脚本Linux执行,kettle在linux下面用于shell脚本执行:转换或者作业

    1 将windows下面创建好的转换,放到Linux某一个文件夹下面.如:把0816_em.ktr文件放到/home/cfj/kettle/testdemo下面. 注意里面的数据库用户名和密码可能需要 ...

  5. hive运行mysql脚本_用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql

    1:创建shell脚本 1 touch sqoop_options.sh2 chmod 777 sqoop_options.sh 编辑文件  特地将执行map的个数设置为变量  测试 可以java代码 ...

  6. shell脚本执行及配置文件

    linux之shell脚本执行及配置文件 bash脚本执行方法: 1 解释器直接运行/usr/bin/bash bash FOO.sh2 使用路径运行脚本(需要有x权限)chmod +x FOO.sh ...

  7. shell脚本执行返回的状态码

    http://www.cnblogs.com/MyEyes/archive/2012/01/12/2320529.html Linux下一条命令或一个进程执行完成会返回一个一个状态码. 0   === ...

  8. linux shell 执行目录,bash shell脚本执行的几种方法

    bash shell 脚本执行的方法有多种,本文作一个总结,供大家学习参考. 假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一: ...

  9. linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式

    主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...

最新文章

  1. MapReduce: 提高MapReduce性能的七点建议【译】
  2. 我为什么看好IPFS
  3. golang 返回值报错 cannot use nil as type string in return argument
  4. arduino上传项目出错_Arduino入门前你该知道的事儿
  5. [译] 解密 Mapbox 卫星影像处理神器 Robosat
  6. 【渝粤题库】广东开放大学 物业财税管理基础 形成性考核 (2)
  7. [html] 页面的重绘和回流是什么?
  8. Python 爬虫基础 - 浏览器伪装
  9. 喝最烈的酒、挖最大的DONG——工具与技巧篇
  10. python3爬取教务系统_python requests模拟登陆正方教务管理系统,并爬取成绩
  11. java 可插拔注解_20200311 8. 注解和可插拔性
  12. Crontab- Linux必学的60个命令
  13. 解决OpenCV JavaCameraView相机preview方向问题
  14. 11.8 scrum report
  15. Canal.deployer 启动报错说CHARACTER SET 'utf8' COLLATE 'utf8_unico', expect null,rkdown编辑器
  16. Several ports (8005, 8080, 8009) required by demo are already in use. The server may already be runn
  17. 饭菜先生推出首款可随心定制的电子菜谱
  18. 不愧是阿里P8!深入理解Java虚拟机pdf百度云
  19. NancyFX 第五章 Nancy 路由
  20. 安装完Ubuntu 18.04之后要做的几件事

热门文章

  1. 年底促销海报还没准备好?电商美工看这里
  2. 创意合成广告欣赏:让人脑洞大开的设计
  3. cdn共振为什么要拍身份证_干货 | 拍婚纱照为什么要提前预约呢?
  4. LIB BFD, the Binary File Descriptor Library
  5. 软件开源是如何赚钱?
  6. DPDK如何释放大页内存(巨页内存hugepage)
  7. C语言CURL实现HTTP POST、GET、PUT
  8. onvif device manager 找不到ipc_常见网络摄像机IP搜索不到可能导致的问题及解决办法汇总...
  9. javascript之Map 和 Set
  10. shadow阴影属性