指定jar程序运行的外部依赖
nohup java -Djava.ext.dirs=./lib/ -cp DataSourceAccessPage.jar com.sitech.adapter.JsonAdapter arg0 arg1
java -cp 命令跟jar路径和指定的编译类(main)路径;
java -jar 跟jar路径也ok,但是需要打包的时候指定jar包里的 MANIFEST.MF 文件中 Main-Class项的值。即默认运行的main函数。
指定参数名称传参给程序
使用getopts命令。
getopts命令识别出各个入参选项之后(用:分隔),遍历case判断。其操作中,有两个"常量",一个是OPTARG,用来获取当前选项的值;另外一个就是OPTIND,表示当前选项在参数列表中的位移,反映下一个要处理的参数索引,初始值是1。
while getopts ":a:b:c:" opt
do
case $opt in
a)
echo "参数a的值$OPTARG,$OPTIND"
;;
b)
echo "参数b的值$OPTARG,$OPTIND"
;;
c)
echo "参数c的值$OPTARG,$OPTIND"
;;
?)
echo "未知参数"
exit 1;;
esac
done
sh getTop.sh -b 2 -a 1 -c 3 -d 4
参数b的值2,3
参数a的值1,5
参数c的值3,7
未知参数
shellUtil命令传参JSON串
传参的json串:
String string ="[{\"nodeName\":\"cdrtype\",\"nodePath\":\"cdrinfo\"},{\"nodeName\":\"cdraddupid\",\"nodePath\":\"cdrinfo\"},{\"nodeName\":\"cdrcycleid\",\"nodePath\":\"cdrinfo\"}]";
String string ="{\"groupId\":\"test\",\"kafkaClusterUrl\":\"xxxxx:9092\",\"targetConnector\":\",,\",\"targetKafkaClusterUrl\":\"xxxxx:9092\",\"targetPartionNum\":\"2\",\"targetTopicNum\":\"2\",\"targetTopicPreName\":\"envent_topic_\",\"topics\":\"event_topic_2\"}";
shellUtil命令:
// 命令接口参数
shellCommand +=
" \"" + jsonDsInfo.replaceAll("\"", "\\\\\"") + "\" "
+ " \"" + jsonFieldList.replaceAll("\"", "\\\\\"") + "\" "
否则会是: -cp xx xx “arg0” “arg1”
java的replaceAll要用四个反斜杠表示一个反斜杠
因为replaceAll里面要提交给一次正则表达式。
shellUtil获取回调nohub启动程序后的pid
nohup java -version >tets.log & echo $!
在脚本中,$!
代表最后执行的进程的PID。
https://codingdict.com/questions/42913 , 或者输入她到文件中,再cat出来
可选文章来源:https://www.toymoban.com/news/detail-560328.html
nohup java -version >tets.log & echo $! cbry/tets.pid | cat cbry/tets.pid文章来源地址https://www.toymoban.com/news/detail-560328.html
到了这里,关于jar程序部署的外部依赖和按名传参和shellUtil传参json串及返回pid问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!