`
magicmind
  • 浏览: 74987 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Linux下Java程序的启动shell脚本

    博客分类:
  • java
阅读更多

 

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脚本及服务cpu内存占用监控脚本

    一、Linux系统Java服务自启动shell脚本 自启动脚本主要目的是在Linux系统启动时自动启动Java服务,确保服务的高可用性。创建自启动脚本通常包括以下步骤: 1. 创建shell脚本:在系统的`/etc/init.d/`目录下创建一...

    linux shell脚本启动java类

    详细的linux shell脚本启动java代码类。

    java在win下启动bat和在linux下启动shell脚本

    在Windows和Linux环境中,启动批处理脚本(bat)和shell脚本(sh)是常见的任务,特别是在自动化和脚本执行过程中。`RunScript.java`和`StreamGobbler.java`这两个文件可能就是用来实现这个功能的。 `RunScript....

    JAVA操作linux服务器,本文用于启动shell脚本并返回数据,简单易懂,可随时修改

    本主题聚焦于使用Java来操作Linux服务器,特别是通过执行shell脚本来获取服务器的反馈数据。以下将详细阐述这个过程涉及的技术点和步骤。 首先,我们需要理解Java中的SSH(Secure Shell)框架,它允许我们在安全的...

    linux系统java项目启动脚本,含启动、重启

    java项目启动脚本,启动、重启

    shell脚本启动Java程序测试工程

    在IT行业中,shell脚本是Linux或Unix操作系统中的一种强大工具,用于自动化任务执行和系统管理。当涉及到启动Java应用程序时,shell脚本可以提供一个方便、可重复且灵活的方法。下面我们将深入探讨如何使用shell脚本...

    java调用shell(包含有参数的调用)

    在某些情况下,Java程序需要调用Shell脚本执行特定的操作,比如访问Linux系统命令或者自动化执行一些任务。本文将详细解释Java如何调用Shell脚本,包括如何编写Shell脚本和在Java中如何传递参数。 首先,Shell脚本...

    linux下shell脚本实现数据的导出

    总结来说,这个场景涉及到了Linux下的shell脚本编写,主要是使用`exp`命令导出Oracle数据库中的数据,并通过Java程序来调用这个脚本。这在日常的运维工作中非常常见,通过这种方式可以实现自动化数据备份,提高工作...

    linux下启动Java程序和杀死java进程shell脚本

    linux下启动Java程序和杀死java进程shell脚本

    shell,bat脚本运行java程序

    下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...

    Shell脚本通过Java class文件启停Java程序源码(脚本及源码)

    在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...

    java程序产品包模板-内置linux和Windows通用shell启动停止脚本(无需系统安装Java运行环境).zip

    这主要得益于包含的shell脚本,它们负责启动和停止Java程序,同时也考虑到了Spring Boot应用的兼容性。 首先,让我们深入了解一下Java程序的部署。通常,Java应用程序需要JRE(Java Runtime Environment)或JDK...

    Java项目linux启动脚本以及日志分割安装软件

    在SpringBoot这样的微服务架构中,通常需要编写自定义的Shell脚本来实现服务的启动、停止和监控。一个基本的启动脚本通常会包含以下部分: 1. **检查Java环境**:确保系统中已经安装了Java运行环境,并且可以通过`...

    启动停止java服务的shell脚本

    本文将详细介绍如何使用Shell脚本来启动和停止Java服务,适用于包括SpringBoot在内的各种Java应用程序。 首先,让我们理解什么是Shell脚本。Shell脚本是Linux或Unix操作系统中的批处理程序,由一系列命令组成,可以...

    centos7下启动springboot项目启动脚本(shell脚本)

    前言:打包好的springboot项目,可以使用java -jar xxx.jar的方式启动。当出现多个springboot项目需要启动的时候,可以使用脚本启动的方式。这在springcloud项目的开发测试阶段尤为有用。以下展示启动脚本示例,过程...

    重启java程序shell脚本

    linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...

    java linux启动jar包脚本

    脚本上有备注,将java项目打为jar包后,替换jar的包名为项目包名即可,log文件会自动生成,方便好用。

    linux下执行java程序的sh脚本下载

    ### Linux下执行Java程序的Shell脚本详解 #### 背景介绍 在Linux环境中运行Java应用程序时,经常需要通过shell脚本来启动Java程序。这种方式不仅便于自动化部署和管理,还可以根据需求灵活调整运行参数。本文将详细...

    Linux教程+ shell学习笔记 + Shell脚本常用命令+shell脚本100例资源合集

    shell脚本 是一种shell编写的脚本程序。 shell编程跟Java、PHP 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执 行的脚本解释器就可以了。 为什么要学习和使用shell? Shell属于内置的脚本 程序开发...

    java调用shell脚本执行sqlldr与存储过程

    在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to ...

Global site tag (gtag.js) - Google Analytics