shell脚本启动java类或者jar包实践

1、直接在shell脚本中执行class文件
代码目录如下:
shell脚本启动java类或者jar包实践_第1张图片
在目录下执行bash test.sh命令
shell脚本test.sh的代码如下

java -Xmx2048m -Xms2048m -XX:MaxNewSize=2048m -XX:MaxPermSize=2048m -XX:PermSize=2048M -XX:-UseGCOverheadLimit -Djava.awt.headless=true -verbose:gc -Xloggc:/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC StartByShell

2、在shell脚本中执行jar包中的main文件
这里用到https://www.cnblogs.com/jiftle/p/9068354.html jar的压缩和解压的相关知识
具体步骤如下:
(1)首先我们需要编辑MANIFEST.MF文件中的Main-Class使其指定具体的包名、类名,编辑MANIFEST.MF文件时要注意格式,案例可以看https://www.cnblogs.com/jiftle/p/9068354.html
shell脚本启动java类或者jar包实践_第2张图片

非shell脚本执行命令如下:
jar cvfm test.jar MANIFEST.MF StartByShell.class
java -jar test.jar
jar打包有个坑,就是m不自动生成MANIFEST.MF,而是用我们自己创建的,另外直接用jar打包要注意查看打包的包结构,否则执行会报错StartByShell.jar中没有主清单属性

shell脚本代码如下:

java -jar -Xmx2048m -Xms2048m -XX:MaxNewSize=2048m -XX:MaxPermSize=2048m -XX:PermSize=2048M -XX:-UseGCOverheadLimit -Djava.awt.headless=true -verbose:gc -Xloggc:/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC test.jar &

下图为test.jar解压目录:
在这里插入图片描述

3、maven打jar包并通过命令运行起来

maven需要的build https://www.cnblogs.com/acm-bingzi/p/6625303.html
本地项目实践:

shell脚本启动java类或者jar包实践_第3张图片
打好的jar包结构:
shell脚本启动java类或者jar包实践_第4张图片
解压jar包:jar -xvf shell-script-1.0-SNAPSHOT.jar
直接运行jar包:java -jar shell-script-1.0-SNAPSHOT.jar

知识点:
如何使用idea创建MANIFEST.MF https://www.cnblogs.com/hongmaju/p/14212183.html
jar打包https://www.cnblogs.com/jiftle/p/9068354.html
shell编程启动java类 https://blog.csdn.net/u010285684/article/details/94569065
nohup命令 https://www.runoob.com/linux/linux-comm-nohup.html

你可能感兴趣的:(java知识点)