Java程序多数情况下都会用到一些第三方的类库,如果仅用到几个jar文件,写到java命令里就好,但是依赖的jar文件很多的情况,写到java命令里就不好了,而且如果jar文件被替换,名字变了,就需要改java命令,所以最好在启动命令里不出现jar文件名。假设程序依赖的类库jar文件存放在同级的lib目录下,
简单的:
java -Djava.ext.dirs=lib -Djava.library.path=lib com.myapp.MyAppClass $*
这个写法绝大部分情况下都是正确有效的,但是曾经在启动一个用Spring框架写的程序时失败,总报告某些类找不到,实际上都已在lib目录下,原因不明。
下面换个方法,把依赖的jar文件都加入环境变量CLASSPATH,并且前面还增加了程序是否已启动的检查。
#!/bin/sh
##############
#判断是否程序已启动
jappname='MyAppClass'
javaps=`jps`
i=0
psid=0
for psresult in $javaps
do
let cur=i%2
if [ $cur -eq 0 ]; then
psid=$psresult
else
if (test "$psresult" = "$jappname")
then
echo "程序"$jappname"[pid="$psid"]已经启动!"
exit 0
fi
fi
let i++;
done
#引入依赖类库到类路径
export CLASSPATH=.
pathtmp=''
for jarpath in `ls lib/*.jar`
do
CLASSPATH=$CLASSPATH:$jarpath
done
export CLASSPATH=$CLASSPATH
java -server com.myapp.MyAppClass $*
附带一个关闭大量Java进程的脚本
服务器上部署的有JBoss和十几个Java程序,测试时经常需要把这十几个Java程序重启一遍,把Java进程全kill掉的话,JBoss也会被杀掉,但是JBoss不需要重启,一个一个用ps命令找pid,再挨个kill?程序太多,无法忍受。JDK里有个小工具叫jps,可以列出当前的Java进程,利用这个jps写了一个杀掉除指定进程之外的所有Java进程的shell脚本。
#####################
#!/bin/sh
# kill all java applications
#####################
javaps=`jps`
i=0
psid=0
for psresult in $javaps
do
let cur=i%2
if [ $cur -eq 0 ]; then
psid=$psresult
else
if (test "$psresult" = "Main" -o "$psresult" = "Jps")
then
echo $psresult" not to be killed."
else
echo "kill "$psresult
kill $psid
fi
fi
let i++;
done
* Main是JBoss的主类名
分享到:
相关推荐
一、Linux系统Java服务自启动shell脚本 自启动脚本主要目的是在Linux系统启动时自动启动Java服务,确保服务的高可用性。创建自启动脚本通常包括以下步骤: 1. 创建shell脚本:在系统的`/etc/init.d/`目录下创建一...
详细的linux shell脚本启动java代码类。
在Windows和Linux环境中,启动批处理脚本(bat)和shell脚本(sh)是常见的任务,特别是在自动化和脚本执行过程中。`RunScript.java`和`StreamGobbler.java`这两个文件可能就是用来实现这个功能的。 `RunScript....
本主题聚焦于使用Java来操作Linux服务器,特别是通过执行shell脚本来获取服务器的反馈数据。以下将详细阐述这个过程涉及的技术点和步骤。 首先,我们需要理解Java中的SSH(Secure Shell)框架,它允许我们在安全的...
java项目启动脚本,启动、重启
在IT行业中,shell脚本是Linux或Unix操作系统中的一种强大工具,用于自动化任务执行和系统管理。当涉及到启动Java应用程序时,shell脚本可以提供一个方便、可重复且灵活的方法。下面我们将深入探讨如何使用shell脚本...
在某些情况下,Java程序需要调用Shell脚本执行特定的操作,比如访问Linux系统命令或者自动化执行一些任务。本文将详细解释Java如何调用Shell脚本,包括如何编写Shell脚本和在Java中如何传递参数。 首先,Shell脚本...
总结来说,这个场景涉及到了Linux下的shell脚本编写,主要是使用`exp`命令导出Oracle数据库中的数据,并通过Java程序来调用这个脚本。这在日常的运维工作中非常常见,通过这种方式可以实现自动化数据备份,提高工作...
下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...
linux下启动Java程序和杀死java进程shell脚本
java程序linux启动shell脚本,支持start ,stop. 修改jar名即可用
在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...
这主要得益于包含的shell脚本,它们负责启动和停止Java程序,同时也考虑到了Spring Boot应用的兼容性。 首先,让我们深入了解一下Java程序的部署。通常,Java应用程序需要JRE(Java Runtime Environment)或JDK...
在SpringBoot这样的微服务架构中,通常需要编写自定义的Shell脚本来实现服务的启动、停止和监控。一个基本的启动脚本通常会包含以下部分: 1. **检查Java环境**:确保系统中已经安装了Java运行环境,并且可以通过`...
本文将详细介绍如何使用Shell脚本来启动和停止Java服务,适用于包括SpringBoot在内的各种Java应用程序。 首先,让我们理解什么是Shell脚本。Shell脚本是Linux或Unix操作系统中的批处理程序,由一系列命令组成,可以...
前言:打包好的springboot项目,可以使用java -jar xxx.jar的方式启动。当出现多个springboot项目需要启动的时候,可以使用脚本启动的方式。这在springcloud项目的开发测试阶段尤为有用。以下展示启动脚本示例,过程...
linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...
脚本上有备注,将java项目打为jar包后,替换jar的包名为项目包名即可,log文件会自动生成,方便好用。
### Linux下执行Java程序的Shell脚本详解 #### 背景介绍 在Linux环境中运行Java应用程序时,经常需要通过shell脚本来启动Java程序。这种方式不仅便于自动化部署和管理,还可以根据需求灵活调整运行参数。本文将详细...
shell脚本 是一种shell编写的脚本程序。 shell编程跟Java、PHP 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执 行的脚本解释器就可以了。 为什么要学习和使用shell? Shell属于内置的脚本 程序开发...