首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux sh启动jar

基础概念

Linux sh 启动 jar 文件是指在 Linux 操作系统下,使用 sh(Shell)脚本启动 Java 应用程序的 JAR 文件。JAR(Java Archive)文件是一种用于封装 Java 类文件、相关元数据和资源文件的文件格式。

相关优势

  1. 跨平台性:Java 应用程序可以在不同的操作系统上运行,只需确保目标系统上有 Java 运行环境(JRE)或 Java 开发工具包(JDK)。
  2. 易于部署:JAR 文件包含了所有必要的类和资源文件,便于分发和部署。
  3. 脚本启动:使用 sh 脚本可以方便地管理应用程序的启动、停止和重启等操作。

类型

  • 启动脚本:用于启动 Java 应用程序的脚本。
  • 停止脚本:用于停止正在运行的 Java 应用程序的脚本。

应用场景

  • Web 应用:启动和停止 Web 服务器或应用服务器。
  • 后台服务:启动和停止后台运行的服务。
  • 批处理任务:启动和停止批处理任务。

示例代码

以下是一个简单的 sh 脚本示例,用于启动和停止一个 Java 应用程序:

启动脚本 (start.sh)

代码语言:txt
复制
#!/bin/sh
# 设置 JAR 文件路径
JAR_FILE=/path/to/your/application.jar

# 检查 JAR 文件是否存在
if [ ! -f "$JAR_FILE" ]; then
    echo "JAR 文件不存在: $JAR_FILE"
    exit 1
fi

# 启动 JAR 文件
echo "启动应用程序..."
nohup java -jar "$JAR_FILE" > /dev/null 2>&1 &
echo "应用程序已启动,进程 ID: $!"

停止脚本 (stop.sh)

代码语言:txt
复制
#!/bin/sh
# 设置 JAR 文件路径
JAR_FILE=/path/to/your/application.jar

# 检查 JAR 文件是否存在
if [ ! -f "$JAR_FILE" ]; then
    echo "JAR 文件不存在: $JAR_FILE"
    exit 1
fi

# 获取进程 ID
PID=$(ps aux | grep "$JAR_FILE" | grep -v grep | awk '{print $2}')

# 检查进程是否存在
if [ -z "$PID" ]; then
    echo "应用程序未运行"
    exit 1
fi

# 停止进程
echo "停止应用程序..."
kill -9 "$PID"
echo "应用程序已停止,进程 ID: $PID"

可能遇到的问题及解决方法

  1. JAR 文件不存在
    • 原因:指定的 JAR 文件路径不正确或文件不存在。
    • 解决方法:检查 JAR 文件路径是否正确,并确保文件存在。
  • 进程未找到
    • 原因:应用程序未运行或进程 ID 获取不正确。
    • 解决方法:确保应用程序正在运行,并检查 ps 命令的输出格式。
  • 权限问题
    • 原因:当前用户没有足够的权限启动或停止进程。
    • 解决方法:使用 sudo 命令提升权限,或修改文件和目录的权限。

参考链接

通过以上信息,您应该能够理解如何在 Linux 系统下使用 sh 脚本启动和停止 Java 应用程序的 JAR 文件,并解决一些常见问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux .sh脚本 启动、停止、重启、状态 Jar包

/bin/sh # author name:zanglikun # author QQ:740969606 # $0 是文件名 # $1 是第一个参数 # echo $0 start 是启动服务 #...echo $0 stop 是停止服务 # echo $0 restart 是重启服务 # echo $0 status 是查看服务状态 # 指定JAR包文件夹,将来运行的时候,此文件需要与jar包同级...Dspring.profiles.active=pro 指的是激活application-pro.properties配置文件 # -Dserver.port=18083 可指定运行端口 # 此变量会获取到当前路径 等价于 Linux...步骤1:将你的jar包与你的.sh脚本放到同级目录 步骤2:修改上面的脚本的将 AppName 替换为Jar包名字 步骤3:在此目录下创建一个logs文件夹,如果不创建此文件夹,将不会有日志文件!...步骤4:用命令运行脚本 # 启动你的服务 ./你的文件名.sh start # 停止你的服务 ./你的文件名.sh stop # 查看你的服务状态 .

10.1K30
  • 干货:Linux启动Java程序jar包Shell脚本

    每次启动Java程序jar包的时候,难道你还在手敲java -jar xxserver.jar……?边敲边想着都需要追加哪些参数?...今天就推荐给大家一个几乎通用的Shell脚本,它支持Java程序Jar包的服务启动、服务停止、服务状态查看,同时在脚本中追加了一些语法说明,具体Shell命令,还请大家自行上网学习。 #!.../bin/sh # 该脚本为Linux下启动java程序的脚本 # # author: luandy # date: 2021/1/15 # # 特别注意: # 该脚本使用系统kill命令来强制终止指定的...=$JAR_NAME\.pid # 日志输出文件 LOG_FILE=logs # java虚拟机启动参数 JAVA_OPTS="-Xms512m -Xmx512m -XX:MetaspaceSize=...echo "Usage: sh run-service.sh [ start | stop | restart | status ]" exit 1 } ###################

    5.2K10

    Linux .sh文件

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。...Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。linux中.sh文件是什么?linux中.sh文件是脚本文件,一般都是bash脚本。...想运行的话就用sh命令运行sh xxx.sh。注:sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash。...当然,linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的。...还有就是在执行脚本的时候是用sh + 脚本名的方式来执行,其实,大部分的时候,简单脚本只要权限设置正确,可以直接执行,不需要sh命令的。

    9.4K20

    linux部署jar包脚本和注册开机启动

    前言 之前开发了windows部署jar包为服务的工具在实际生产环境中使用非常简单方便,公司部分项目是部署在linux系统中的,所以决定整合一个通用的jar包部署脚本,并注册为开机启动服务,为开发实施的同事提供方便...,以下操作实际系统环境为centos8 通过脚本启动 安装jdk,可以不配置环境变量 脚本和部署jar包放置在同一个文件夹 修改脚本deploy.sh中的JAVA_HOME指向jdk目录,...启动jar包,同目录app.log显示日志,重新启动日志会覆盖 ..../deploy.sh start 查看jar包运行状态 ./deploy.sh status 停止jar包 ..../deploy.sh stop 注册服务启动 需要执行完毕【通过脚本启动】步骤配置内容 修改deploystart.sh和deploystop.sh脚本内容重的cd路径为【通过脚本启动】步骤拷贝到的项目路径

    42040

    Linux编辑启动停止重启springboot jar包脚本

    java -jar bootdo.jar // 这种方式可以运行在后台,但是如果推出了shell的话,那也会挂 java -jar /bootdo-2.0.0.jar > bootdolog.file...在服务器上通过如下方式启动成功之后,如果涉及到重新启动,那么你需要通过ps -ef | grep bootdo 查询到进程号,再通过kill -s 9 ${pid} 进行杀死再重新启动,很是麻烦。...这样,可以通过编写一个shell脚本来进行启动(start)停止(stop)重启(restart)操作,一步到位,方便高效 在自定义目录创建 wss.sh 脚本,编辑内容如下。 1 #!...在标红接头行配置启动命令。 之后就可以通过 wss.sh start | stop | restart 实现启动,停止,重启操作了。 补充下 sh xxx.sh与..../xxx.sh区别 sh xxx.sh 是不需要有执行权限 ./xxx.sh 是需要有执行权限的,可以通过 chmod +x xxx.sh 赋予权限

    4.7K40

    推荐:Linux启动Java程序jar包Shell脚本

    每次启动Java程序jar包的时候,难道你还在手敲java -jar xxserver.jar……?边敲边想着都需要追加哪些参数?...今天就推荐给大家一个几乎通用的Shell脚本,它支持Java程序Jar包的服务启动、服务停止、服务状态查看,同时在脚本中追加了一些语法说明,具体Shell命令,还请大家自行上网学习。 #!.../bin/sh # 该脚本为Linux下启动java程序的脚本 # # author: luandy # date: 2021/1/15 # # 特别注意: # 该脚本使用系统kill命令来强制终止指定的...=$JAR_NAME\.pid # 日志输出文件 LOG_FILE=logs # java虚拟机启动参数 JAVA_OPTS="-Xms512m -Xmx512m -XX:MetaspaceSize=...echo "Usage: sh run-service.sh [ start | stop | restart | status ]" exit 1 } ###################

    7.3K20

    如何在Linux下快速找到Java进程启动的JAR文件

    如何在Linux下快速找到Java进程启动的JAR文件在线上环境中,当CPU占用率异常高时,经常需要定位到是哪个Java进程导致的,并进一步找到该进程启动的JAR文件。...查看进程启动目录:/proc/[PID]/cwd 是一个指向进程当前工作目录的符号链接。这通常是JAR文件所在的目录,但JAR文件的完整路径和名称不会直接给出。...这通常包括启动Java进程的完整命令,包括JAR文件的路径。总结/proc文件系统提供了关于进程的详细信息,但可能需要手动查找JAR文件。...jps命令直接列出了Java进程的PID和启动的JAR文件或类名,非常方便。pgrep命令可以列出包含java关键字的进程及其完整命令行参数,通常也包含JAR文件的路径。...如果只需要快速查看正在运行的Java进程及其启动的JAR文件,jps命令通常是最简单直接的选择。

    1.3K10

    Springboot项目使用java -jar 启动jar包参数详解

    daily, 这个可以在spring-boot启动中指定系统变量,多环境(测试、预发、线上配置)的区分 在排查jar包冲突时,可以指定启动的-verbose:class 打印出启动的应用实际加载类的路径...java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:OnOutOfMemoryError =“sh...~/cleanup.sh” MyApp 其他补充说明: shell命令重定向绑定: nohup command >/dev/null 2>&1 & /dev/null 2>&1。...刚才提到了,linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令。...2.& 用途:在后台运行 一般两个一起用 我们经常使用nohup command &命令形式来启动一些后台程序,比如一些java服务: #nohup java -jar xxxx.jar & 为了不让一些执行信息输出到前台

    5.7K30

    【Linux系列】> img.sh 使用

    > img.sh,这条命令会将字符串"Hello, World!"写入文件img.sh中。...如果img.sh文件之前存在,它的内容会被完全替换;如果不存在,系统会创建一个新的空文件,并写入指定的字符串。 > img.sh命令的用途 现在我们回到最初的问题,> img.sh命令的作用是什么?...使用> img.sh可以快速创建一个空的img.sh文件。 重置文件内容:如果img.sh文件中的内容不再需要,或者我们希望从头开始编辑,使用> img.sh可以快速清空文件,为新的编辑做好准备。...> img.sh命令提供了一种快速且可靠的方法来实现这一点。 数据备份:在进行数据备份时,我们可能需要创建一个空文件作为备份的起点。> img.sh命令可以帮助我们快速完成这一任务。...例如,echo "New line" >> img.sh会在img.sh文件末尾添加一行文本,而不是覆盖原有内容。 2>:错误重定向。它将标准错误(stderr)重定向到指定的文件。

    9310

    java -jar 启动程序设置classpath

    启动时,`-cp`参数无效 jar 文件的 Class-Path java -jar 启动程序时,设置classpath的方法 方法1:修改 bootclasspath 方法2:修改 Extensions...java -jar 启动时,-cp参数无效 使用-jar选项(形如:java -jar xxx.jar )来运行一个可执行的jar包时,-jar会覆-cp的值。...Class-Path的属性中的jar会被加载。 java -jar 启动程序时,设置classpath的方法 方法1:修改 bootclasspath 此种方法可以添加少量的jar文件。...\lib2 java.class.path: - target\PrintPath.jar 方法3:修改classpath java -jar方式启动程序时,-cp参数是无效的,则不能通过-cp参数设置...选项:如果通过java -jar 来运行一个可执行的jar包,这当前jar包会覆盖上面所有的值.换句话说,-jar 后面所跟的jar包的优先级别最高,如果指定了-jar选项,所有环境变量和命令行制定的搜索路径都将被忽略

    3.1K20

    springboot_jar包Linux环境下部署启动报错OutOfMemoryError排查解决

    问题描述: springboot打包成jar包部署到linux服务器,部署报错如下所示: ?...问题排查: 排查一 分析:idea启动正常,本地jar包启动也正常,初步断定可能是JVM初始化内存不足导致的内存溢出。 1) free -m ?...推测:idea启动正常,本地jar启动也正常,服务器空闲内存空间过小,初步推测可能由于内存过小的原因。...验证: 1)部署另外一台内存空间较大的服务器,启动测试,java -jar test.jar 启动正常无问题。...结论: 1)服务器内存空间太小导致 2)jar包打包没排除不需要的大文件,导致启动时所占内存空间过大所导致 本文由来源 jackaroo2020,由 javajgs_com 整理编辑,其版权均为

    1.8K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券