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文件
这里用到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脚本执行命令如下:
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
本地项目实践:

打好的jar包结构:

解压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.youkuaiyun.com/u010285684/article/details/94569065
nohup命令 https://www.runoob.com/linux/linux-comm-nohup.html
本文详细介绍了如何在Shell脚本中执行Java类文件和jar包中的main方法。首先,展示了直接执行class文件的shell命令,然后讲解了通过编辑MANIFEST.MF文件指定main方法并使用jar命令执行jar包的步骤,包括解决jar打包时可能出现的问题。最后,提到了使用maven构建jar包并运行的方法,以及相关工具和命令的使用技巧。
764

被折叠的 条评论
为什么被折叠?



