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

springboot jar包的启动脚本 springboot jar包的启动脚本 第一步: 先把一个springboot项目打包,打成jar形式 这边我使用的Idea 第二步:启动脚本书写 建一个demo-web.sh的脚本文件 脚本文件的内容: #!/bin/sh #这里可替换为你自己的执行程序,其他代码无需更改 ... 阅读详情

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

运行Java程序jar的方法 在Shell脚本中运行Java程序jar文件是一种常见的方式,它提供了一种简单且可自动化的方法来执行Java应用程序。本文将介绍如何使用Shell脚本运行Java程序jar文件,并提供相应的源代码示例。首先,你需要确保在系统中安装了Java Development Kit(JDK),以便能够编译和运行Java程序。可以通过在终端中运行。接下来,我们将编写一个Shell脚本,用于运行Java程序jar文件。请确保脚本文件和Java程序jar文件的路径是正确的,并且你拥有足够的权限来执行脚本。 阅读详情

相关推荐

shell脚本运行java程序jar的方法

本篇文章主要介绍了shell脚本运行java程序jar的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

linux使用shell脚本启动jar包 java -jar等指令

定义变量法一般都是头字母大写A=100echo $A #输出变量A#如果加上 `date` 代表它是已一个指令或者标量来执行A=`date`echo A$(date)等价与`` java -jar xxx.jar

m0_64787068的博客 4091

PowerBI启动故障排查:环境变量与兼容性设置全指南

本文详细解析了PowerBI启动故障的常见问题,如空白界面和闪退,并提供了环境变量修改与兼容性设置的全方位解决方案。通过调整WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS环境变量和设置兼容模式,有效解决PowerBI启动问题,提升软件运行稳定性。

weixin_29255731的博客 470

shell脚本自动化执行jar包

记录了自动执行jar的脚本,主要包含前置的判断和现有进程关闭,以及自动执行后台java命令两部分。整体的思路还是比较明确的,不过真写的时候要注意的还挺多,比如pid拿来的时候可能有多个等。自动化脚本还是比较方便,以后可以用来持续部署,挺好的。

回炉重造P的博客 1999

在统信UOS Server 20上踩坑记:手把手教你搞定openGauss 5.0.0企业版安装(附常见报错解决方案)

本文详细记录了在统信UOS Server 20上安装openGauss 5.0企业版的实战经验,包括环境准备、依赖库问题、目录权限、内存参数调优等常见问题的解决方案。通过伪装系统标识、建立软链接、调整内存参数等方法,成功克服国产操作系统与企业级数据库的兼容性挑战,为开发者提供了一份深度排雷指南。

weixin_28698059的博客 261

从零部署DeepSeek V4 Flash:NVIDIA DGX Spark实战指南

GPU加速计算已成为现代人工智能基础设施的核心,其原理是通过并行处理架构大幅提升深度学习模型的训练与推理效率。在AI工程实践中,NVIDIA GPU凭借CUDA生态和专用驱动栈,为大规模语言模型部署提供了硬件基础。本文聚焦于企业级AI服务器部署场景,针对NVIDIA DGX Spark多节点系统的硬件初始化、驱动兼容性配置、容器化部署等关键环节,提供从系统层到应用层的完整解决方案。通过vLLM推理框架的实战配置,演示如何将DeepSeek V4 Flash模型高效部署于多GPU环境,涵盖Tensor Par

weixin_32296621的博客 373

shell命令执行jar包中的main方法

需求描述 使用java写好业务逻辑,打成jar包,使用shell命令调用执行该jar包中的某个main方法,可以保存到.sh文件里供contab定时调用; PS: 下面脚本的这种方式不太适合springboot构建的jar包,比较适合原生java项目打成的jar包 实现代码 #shell执行jar包 #!/bin/bash #定义常量 JAVA_HOME=/home/jdk1.7.0_79 APP_HOME=/HceBatch/ APP_LIB=/HceBatch/lib export LANG=utf

AVATAR 2318

基于ROS2 Humble与Livox Mid-360的双雷达点云融合实战解析

本文详细解析了基于ROS2 Humble与Livox Mid-360的双雷达点云融合实战方案。从环境搭建、驱动安装、双雷达配置、外参标定、时间同步到点云融合核心实现,全面介绍了技术要点与避坑指南,并提供了工程化部署与性能优化建议,助力开发者高效实现高精度点云合成应用。

ss78901的博客 1093

[ Linux ] Shell脚本启动jar包

文章目录案例1:简单的启动方式案例二:带配置文件时 案例1:简单的启动方式 注意:jar 包与shell脚本文件必须在同一目录下 #!/bin/bash APP_NAME=/boot/soc-statistic-service-0.0.1-SNAPSHOT.jar usage() { echo "Usage: sh demo.sh [start|stop|restart|status]" exit 1 } is_exist() { pid=`ps -ef | grep $APP_NAME | gr

Java 3319

B0505S选型

    使用B0505S-1W已经有一段时间了,一直以来使用的是下面的电路,该电路摘自《CAN总线嵌入式开发——从入门到实战》一书。 参考金升阳的用户手册,手册上写道: 为了确保该模块能够高效可靠的工作,使用时,其输出最小负载不能小于额定负载的10%。若您所需功率确实较小,请在输出端并联一个电阻(电阻消耗功率与实际使用功率之和大于等于10%的额定功率)        由于使用该电源模...

动感小麦兜的博客 1万+

YOLO-World:从入门到实战的多模态目标检测全指南

想象一下,你给模型一张“公园”的图片,再输入文字“红色的郁金香”,它能直接在图中框出所有红色郁金香的位置——这就是多模态目标检测:结合图像视觉信息和文本语义信息,同时完成“是什么”(分类)和“在哪里”(定位)的任务。传统目标检测(如YOLOv5、YOLOv8)只能识别预定义的类别(比如训练时学过“猫”“狗”),但多模态目标检测摆脱了“类别预定义”的限制,只要文本能描述,它就能检测,这就是“开放词汇检测(Open-Vocabulary Detection)”的魅力。

know_F0727的博客 204

shell脚本启动jar包示例

这里主要为shell脚本启动部署在服务器中jar包 #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=demo.jar #使用说明,用来提示输入参数 usage() { echo "Usage: sh demo.sh [start|stop|restart|status]" exit 1 } #检查程序是否在运行 is_exist() { pid=`ps -ef | grep $APP_NAME | grep -v grep | a...

bug_love的博客 4246

S7-200 SMART PLC 子程序功能块(阀门控制)

由于S7-200 SMARTPLC的子程序种种功能、容量限制,有时想实现多次调用的子程序可能并不是太容易,这篇博客还是给出一些推荐写法,供大家参看。

RXXW_Dor的博客 8063

Linux下批量启动jar包的shell脚本

jar_shell.sh文件内容如下 #! /bin/sh # 端口号 PORTS=(8761 10000) # 模块 MODULES=(zns-eureka zns-product) # 模块名称 MODULE_NAMES=(注册中心 产品模块) # jar包数组 JARS=(zns-eureka-1.0.0.jar zns-product-1.0.0.jar) ...

weixin_38169722的博客 2467

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.3 从零移植 busybox,基于RISC-V

上一章节我们已经成功启动了`Ubuntu`,但是由于`Ubuntu`占用系统空间过大,所以我转向占用较小的`busybox`,预计就占用`30M`左右。开始移植busybox,基于riscv64

DSMGUOGUO的博客 856

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

linux shell 编写开机启动启动jar包的脚本

通过编写一段shell脚本,让linux服务器能够在开机的时候启动某个jar包,因此,shell脚本初步得有三个功能 1 判断jar包绑定的端口是否被占用 用最高的权限来查找占用的进程,并返回pid 如果占用,则用最高的权限kill占用的 ...

csdnfzp2016的博客 1974

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

启动jar包shell脚本_shell脚本启动jar包,零基础入门到精通,收藏这篇就够了

1、创建shell脚本2、复制以下内容修改自己jar包的文件名和路径3、启动好了 ,到这里估计你的项目应该已经运行成功了!说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!

leah126的博客 821

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

linux 下启动java jar包 shell

=$(cat BatchClient.pid)  echo "=========================="  echo "service is already started"  echo "service process ID is $PID"  echo "=========================="else  echo "=========================="  ec

16万+

shell 脚本启动jar程序

Linux下启动jar包程序,直接上步骤: 1、首先,maven项目打成一个jar包,同时使用dependency:copy-dependencies命令导出依赖的jar包,把导出的包和项目jar包都放进lib文件夹里 2、编写shell脚本: #!/bin/bash export JAVA_HOME=/home/program/java/jdk1.8.0_60 #

渣渣想逆袭 1万+

linux--shell脚本批量启动和停止jar包

脚本代码all.sh #! /bin/sh # 端口号 PORTS=(8084 8083 8085 8086) # 系统模块 MODULES=(mcht system user act) # 系统模块名称 MODULE_NAMES=(商户模块 系统模块 用户模块 活动模块) # jar包数组 JARS=(mcht-1.0.1-SNAPSHOT.jar system-1.0.1-SNAPSHO

zk0920zk的博客 1万+

Linux下shell脚本启动jar包

Linux下shell脚本启动jar包     不说废话,直接上图。         这是整个目录结构,其中bin里面是启动脚本(st2.sh),lib里面是你需要启动的猪jar包和依赖的其他jar包,log里面是打印的日志。直接看脚本。     上面是完整的脚本代码,原理不多说,百度Google都可以。需要注意的地方是以下几点: 第4行的MAIN_CLASS="l

梵莫三缘 1万+

linux中一次启动多个jar的脚本

linux jar包

qq_35013551的博客 3214

linux--shell脚本启动和停止jar包

完整脚本启动和停止jar包 #! /bin/sh PORT=8086 HOME='/usr/local/beta' LOG_HOME='/usr/local/beta/build' LOG_FILE='act-service.log' JAR_HOME=act-1.0.1-SNAPSHOT.jar pid=`netstat -apn | grep $PORT | awk '{pr

zk0920zk的博客 1万+

Shell 脚本启动jar包

#!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=epas.jar #使用说明,用来提示输入参数 usage() { echo "Usage: sh demo.sh [start|stop|restart|status]" exit 1 } #检查程序是否在运行 is_exist() { pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' ` #如果不存.

geomon的博客 2494

Linux shell脚本启动停止重启springboot jar包

文章目录前提创建.sh脚本执行脚本备注 前提 在linux中已经配置好jdk 检查是否配置好jdk java -version 创建.sh脚本 在自定义目录下创建 .sh 脚本,由于这个脚本只是操作指定jar包,个人建议脚本名称与jar包名称一致,方便区分,如下创建item.jar #替换这里jar包的路径,其它代码无需更改 APP_NAME=/root/item.jar #使用说明,用来提示...

weixin_40690164的博客 2723
上一篇: volatile、synchronized 和Lock区别
下一篇: VUE组件封装、切换和父子组件变量函数的调用
程序猿-日记本
博客等级 码龄10年 204粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值