`

shell 启动程序

 
阅读更多

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,并且前面还增加了程序是否已启动的检查。

 

Shell代码 复制代码收藏代码
  1. #!/bin/sh
  2. ##############
  3. #判断是否程序已启动
  4. jappname='MyAppClass'
  5. javaps=`jps`
  6. i=0
  7. psid=0
  8. forpsresultin$javaps
  9. do
  10. letcur=i%2
  11. if[$cur-eq0];then
  12. psid=$psresult
  13. else
  14. if(test"$psresult"="$jappname")
  15. then
  16. echo"程序"$jappname"[pid="$psid"]已经启动!"
  17. exit0
  18. fi
  19. fi
  20. leti++;
  21. done
  22. #引入依赖类库到类路径
  23. exportCLASSPATH=.
  24. pathtmp=''
  25. forjarpathin`lslib/*.jar`
  26. do
  27. CLASSPATH=$CLASSPATH:$jarpath
  28. done
  29. exportCLASSPATH=$CLASSPATH
  30. java-servercom.myapp.MyAppClass$*

 

 

附带一个关闭大量Java进程的脚本

服务器上部署的有JBoss和十几个Java程序,测试时经常需要把这十几个Java程序重启一遍,把Java进程全kill掉的话,JBoss也会被杀掉,但是JBoss不需要重启,一个一个用ps命令找pid,再挨个kill?程序太多,无法忍受。JDK里有个小工具叫jps,可以列出当前的Java进程,利用这个jps写了一个杀掉除指定进程之外的所有Java进程的shell脚本。

 

Shell代码 复制代码收藏代码
  1. #####################
  2. #!/bin/sh
  3. #killalljavaapplications
  4. #####################
  5. javaps=`jps`
  6. i=0
  7. psid=0
  8. forpsresultin$javaps
  9. do
  10. letcur=i%2
  11. if[$cur-eq0];then
  12. psid=$psresult
  13. else
  14. if(test"$psresult"="Main"-o"$psresult"="Jps")
  15. then
  16. echo$psresult"nottobekilled."
  17. else
  18. echo"kill"$psresult
  19. kill$psid
  20. fi
  21. fi
  22. leti++;
  23. done
分享到:
评论

相关推荐

    pic-iot-aws-app-shell:PIC-IoT板的Shell启动程序

    标题中的“pic-iot-aws-app-shell”是一个项目或库的名称,专为PIC-IoT板设计,用于实现一个Shell启动程序。PIC-IoT板是Microchip Technology公司生产的微控制器开发板,通常用于物联网(IoT)应用。这个Shell启动程序...

    Linux下shell自启动程序.zip

    "Linux下shell自启动程序"指的是利用shell脚本在系统启动时自动运行特定的任务或服务。这通常涉及到Linux系统的初始化进程和系统服务管理。让我们深入探讨这个主题。 首先,Linux系统的启动流程包括多个阶段,其中...

    shell启动java程序(jar)的脚本

    shell启动jar程序的脚本,可以根据传入的参数"start"、"stop"、"restart"启动当前目录下的jar程序。

    shell-启动应用程序的脚本

    shell脚本 shell脚本 shell脚本 shell脚本 shell脚本

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

    # 使用java命令启动程序 java $JAVA_OPTS -cp $CLASSPATH $MAIN_CLASS ``` 在这个脚本中,`#!/bin/bash`是shebang,告诉系统使用bash解释器来执行脚本。`MAIN_CLASS`变量存储了主类的全限定名,`JAR_FILE`变量则...

    EFI shell,用于EFi主板通过EFI方式启动

    3. 用户交互:一旦EFI Shell启动,用户可以在命令行界面输入命令,执行各种操作。 三、EFI Shell的应用场景 1. 系统恢复:在操作系统崩溃或无法启动时,EFI Shell可以用来修复引导扇区,加载紧急修复工具。 2. 驱动...

    shell启动项目

    在本文中,我们将深入探讨"shell启动项目"这一主题,包括Shell脚本的基础、编写方法以及如何通过Shell脚本来启动项目。 1. **Shell脚本基础** - **什么是Shell?** Shell是操作系统提供的一种命令行接口,用户可以...

    shell.efi 启动

    一旦shell启动,你就可以输入各种命令来管理硬件、加载操作系统映像或者进行故障排除。 UEFI shell提供了一系列内置命令,例如`fs0:`用于访问第一个已连接的FAT32分区,`ls`列出文件和目录,`copy`用于复制文件,...

    shell程序实验报告

    ### Shell程序实验报告知识点解析 #### 一、实验目的与背景 本次实验旨在使学习者掌握在Unix系统下的基本操作及Shell程序设计方法。通过实际编程任务加深对Shell脚本的理解,具体目标包括: 1. **熟悉Unix环境下...

    linux作业:编写shell程序

    - **打印提示符**:每当程序启动或用户执行完一条命令后,都需要显示一个提示符,以便用户知道可以继续输入命令。 - **接受和分析命令行**:程序需要能够接收用户的输入,并对输入进行解析,去除多余的空格、tab键...

    bootmgfw.efi,通过EFI shell,启动WIN7程序

    描述中提到的"通过EFI shell启动WIN7程序"意味着在UEFI环境中,用户可以利用EFI Shell这一命令行工具来直接执行bootmgfw.efi,从而启动Windows 7。EFI Shell提供了类似于DOS的命令行界面,使得用户可以执行各种系统...

    UEFI SHELL 引导启动文件

    3. **UEFI Shell启动**:当选择UEFI Shell作为引导目标时,系统将加载Shell程序,并显示命令行界面。 4. **命令行操作**:用户可以通过Shell提供的命令行接口执行各种操作,比如运行其他EFI应用程序(如操作系统加载...

    精通 LINUX & UNIX Shell 程序设计.pdf 高清下载

    由于提供的内容中仅包含标题、描述、标签和下载链接的重复信息,并没有具体到Linux和UNIX Shell程序设计的技术细节,因此无法直接从这部分内容中提取出符合要求的知识点。为了满足您的要求,我将基于标题和标签中...

    java spring-boot shell 启动器

    Java Spring-Boot Shell 启动器是一个实用工具,它提供了通过Shell脚本来管理Spring-Boot应用的便捷方式。这个启动器允许用户启动、停止、重启和查看应用日志,而无需手动使用`kill`命令来结束进程。在IT环境中,...

    快捷键启动程序(能够实现程序的快捷启动)

    在IT领域,快捷启动程序是一种高效的工作方式,它允许用户通过简单的键盘组合或者特定的桌面图标来快速启动常用的软件或应用。这样的功能大大提升了工作效率,减少了在众多菜单和文件夹中寻找应用程序的时间。本文将...

    VBA示例之 求人不如自已动手 Shell调用的程序执行完成后再执行其它程序

    在VBA中,Shell函数用于启动一个操作系统外壳程序,这可以是一个可执行文件、批处理文件或系统命令。 Shell函数的基本语法如下: ```vba Public Declare Function Shell _ Lib "kernel32" Alias "CreateProcessA" ...

    VB Shell调用后等待程序运行结束

    这段代码首先使用`Shell`启动程序,然后通过`FindWindow`不断检查程序的窗口是否存在。当窗口存在时,循环会持续进行,直到程序关闭,窗口句柄变为0,循环才会结束。 注意,这种方法依赖于程序有一个可见的窗口。...

    linux shell解析程序源码

    Linux Shell解析程序是操作系统与用户交互的核心组件之一,它接收用户输入的命令并负责执行。这个源代码提供了实现这一功能的基础框架,允许用户执行诸如`ls`、`cd`这样的基本命令,同时还支持管道(pipe)操作,这...

    Shell脚本启动和停止springboot的jar包

    在本场景中,我们有两个文件——`startup.sh`和`shutdown.sh`,它们是用于启动和停止Spring Boot应用的Shell脚本,其中还涉及到内存配置。 首先,让我们深入理解`startup.sh`脚本。这个脚本的主要目标是启动一个...

Global site tag (gtag.js) - Google Analytics