shell脚本启动java类或者jar包实践
1、直接在shell脚本中执行class文件 代码目录如下: 在目录下执行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文件 这里用到 jar的压缩和解压的相关知识 具体步骤如下: (1)首先我们需要编辑MANIFEST.MF文件中的Main-Class使其指定具体的包名、类名,编辑MANIFEST.MF文件时要注意格式,案例可以看
非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 本地项目实践:
打好的jar包结构: 解压jar包:jar -xvf shell-script-1.0-SNAPSHOT.jar 直接运行jar包:java -jar shell-script-1.0-SNAPSHOT.jar
知识点: 如何使用idea创建MANIFEST.MF jar打包 shell编程启动java类 nohup命令