如何在java中执行shell脚本

如何在java中执行shell脚本,第1张

使用shell脚本启动zookeeper步骤:采用shell脚本启动zookeeper,渗御首先新建文件start.sh写入内容(rh1rh2rh3分别是主机名。此处需要ssh):#!/bin/shecho“startzkServer…”foriinrh1rh2rh3dossh$i“/usr/local/zookeeper3.4/bin/zkServer.shstart”done写好后保存,加上执行权限:chmodu+xstart.sh运行:./start.sh看见启动成功了,有输出。但是输入jps查看的时候,会发现没有QuorumPeerMain进程。说明没有启动成功。启喊姿分析原因首先知道交互式shell和非交互式shell、登录shell和非登录shell是有区别的在登录shell里,环境信息需要读取/etc/profile和~/.bash_profile,~/.bash_login,and~/.profile按顺序最先的一个,并执行其中的命令。除非被—noprofile选项禁止了;在非登录shell里,环境信息只读取/etc/bash.bashrc和~/.bashrc手工执行是属于登陆shell,脚本执行数据非登陆shell,而我的linux环境配置中只对/etc/profile进行了jdk1.6等环境的配置,所以脚本执行/usr/local/zookeeper3.4/bin/zkServer.shstart启动zookeeper失败了解决方法把profile的配置信息悄绝echo到.bashrc中echo‘source/etc/profile’~/.bashrc在/zookeeper/bin/zkEnv.sh的中开始位置添加exportJAVA_HOME=/usr/local/jdk1.6(就像hadoop中对hadoop-env.sh的配置一样)采用shell脚本启动zookeeper,首先新建文件start.sh写入内容(rh1rh2rh3分别是主机名。此处需要ssh):#!/bin/shecho“startzkServer就可以了。

你是要单次运行还是不挂断在后台运行?单次直接java -jar xxx.jar 就可以了,不挂断的话,可以编写一个shell脚本,start.sh 内容如下

#!/bin/sh

nohup java -jar -XX:PermSize=64m -XX:MaxPermSize=128m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:SurvivorRatio=8 xxx.jar>/dev/null 2>&1 &

具体的参数你自己把握,然后保存,给这个脚本赋于可执行权限,chmod +x start.sh

然后执行这个脚本,野首sh start.sh ,然后查看一下java进颂型数程,看这个租消服务起来没有,jps

先运行java程序,然后用echo $?获取程世型序的运行结果,毁梁如果是字符串,可以使用

result=$(java -jar xxx.jar)来获取,当然这只是搜余猜示例,$()中的命令使可以随便修改的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12529284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存