`
ivywang
  • 浏览: 33967 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

用Ant强杀Java进程

Ant 
阅读更多

强杀进程的方式有很多。如果应用程序需要在多个平台下运行,我们可以为不同的平台编写不同的脚本,然后在整体构建/运行的脚本里去分别调用,但这并不太利于维护。我们可以借助Ant、采用统一的方式去完成这件事情。

 

以强杀Java进程为例,主要思路:

  1. 使用Java自带的jps命令得到所有Java进程的信息
  2. 获得符合要求的Java进程的PID
  3. 调用强杀进程的命令杀死进程

Ant脚本片段:

 

    <property environment="env"/>
    
    <target name="kill-process">
        <!-- 执行Java自带的jps命令,将所有Java进程的信息(包括PID)写入pid.out文件 -->
        <exec executable="${env.JAVA_HOME}/bin/jps" output="pid.out">
            <!-- 用jps命令的参数v,可以获取Java进程的变量信息。
                 如果多个Java进程需要通过变量信息区分,这个参数很有用-->
            <arg value="-v"/>
        </exec>
        
        <!-- 加载pid.out文件,用filterchain定义条件、得到符合条件的PID -->
        <loadfile srcfile="pid.out" property="pid">
            <filterchain>
                <linecontains>
                    <contains value="Bootstrap"/>
                </linecontains>
                <tokenfilter>
                    <replaceregex pattern="^(\d+) Bootstrap (.*)" replace="\1"/>
                    <trim/>
                    <ignoreblank/>
                </tokenfilter>
                <striplinebreaks/>
            </filterchain>
        </loadfile>
        
        <condition property="haveValue">
            <isset property="pid"/>
        </condition>
        
        <antcall target="pidFound"/>
        <antcall target="pidNotFound"/>
        
        <delete file="pid.out"/>
    </target>
    
    <target name="pidFound" if="haveValue">
        <echo>Killing process with PID: ${pid}</echo>
        <!-- 执行强杀进程的命令,这里以Windows自带的tskill为例 -->
        <exec executable="tskill">
            <arg value="${pid}"/>
        </exec>
    </target>
    
    <target name="pidNotFound" unless="haveValue">
        <echo>There is no matched process.</echo>
    </target>
2
0
分享到:
评论
3 楼 masuweng 2012-11-15  
正好研究研究
2 楼 Neoman 2012-11-15  
顶,正是我需要的。之前用ant的 exec 有问题,
1 楼 witcheryne 2012-11-14  
这个脚本给力, 强杀 win  下的tomcat应该很好用.

相关推荐

    ant调用java类

    本文将详细解释如何使用 Ant 脚本来调用 Java 类,并结合提供的文件内容进行解析。 首先,我们需要了解 Ant 的 `&lt;java&gt;` 标签,这是 Ant 调用 Java 类的主要方式。在提供的 `testset_build.xml` 文件中,`&lt;java&gt;` ...

    ars.scr.zip_ant_ant algorithm_ant algorithm java_ars.scr_蚂蚁

    【描述】"JAVA版的蚂蚁算法(Ant Colony Optimization Algorithms)" 指出这个资源是用Java编程语言实现的蚂蚁算法。在计算机科学中,Java是一种广泛使用的面向对象的编程语言,具有跨平台的特性,因此这个实现可以在...

    ant.jar,ant-junit.jar,ant-launcher.jar,ant-trax.jar

    在IT行业中,Ant是一个至关重要的自动化构建工具,尤其在Java开发领域中被广泛使用。Ant以其XML为基础的构建文件(通常命名为build.xml)为特点,允许开发者定义和执行项目的构建任务。现在,让我们深入探讨一下标题...

    ANT和OpenSSH在Java Web数据安全传输中的应用.pdf

    ANT是一个广泛使用的开源构建工具,它由Apache基金会开发,主要用于自动化Java应用程序(以及其它语言)的构建过程。ANT的核心理念是通过XML描述构建过程,使得构建脚本具有可读性强、可配置性高的特点。ANT可以执行...

    ant-launcher-1.7.0.jar.zip

    在使用Ant时,我们通常通过Java虚拟机(JVM)执行这个启动器,传递必要的参数,如构建文件路径和目标。例如,我们可以通过以下命令行启动Ant: ``` java -jar ant-launcher-1.7.0.jar -f build.xml ``` 这里,`-f`...

    ant启动关闭tomcat

    在本文中,我们将深入探讨如何使用Ant通过XML配置来启动和关闭Tomcat服务器,这一技能对于任何从事Java Web开发的人员来说都是至关重要的。 ### 一、Ant与Tomcat简介 #### Ant Ant(Another Neat Tool)是一种...

    java-unrar-0.5.jar、commons-logging-1.2.jar和ant-1.6.5.jar

    例如,使用Ant定义一个构建脚本,它首先调用`java-unrar-0.5.jar`来解压RAR文件,然后利用`commons-logging-1.2.jar`记录解压过程中的日志信息。这种组合方式既实现了RAR文件的解压,又保证了日志记录的便利性,同时...

    ant编译时抛出OutOfMemoryError.doc

    在使用Apache Ant构建Java项目时,可能会遇到一个常见的问题,即`OutOfMemoryError`。这个错误通常发生在编译大量Java源文件时,由于资源耗尽,JVM无法分配足够的内存来执行任务。`OutOfMemoryError`是Java运行时...

    使用Ant进行ssh和scp操作

    在IT行业中,构建自动化是提高效率的关键步骤,而Apache Ant是一个广泛应用的Java构建工具,它允许开发者通过XML配置文件来定义构建任务。本文将深入探讨如何利用Ant进行SSH(Secure Shell)和SCP(Secure Copy)...

    Powershell(脚本) Ant(编译)实现一键打包

    - **Ant简介**:Ant是一个开源的Java构建工具,它能够将软件开发中的各种任务(如编译、测试、部署)自动化,大大简化了开发过程。Ant通过读取XML格式的构建文件(通常是`build.xml`)来执行一系列预定义的任务。 -...

    ant 标签详细解释

    ### ant 标签详细解释 #### 一、`&lt;project&gt;` 标签 在 Ant 构建工具中,`&lt;project&gt;` 标签是构建文件的根元素,它定义了一个项目的基本属性,如项目的默认目标、基准目录等。具体而言: - **default**:此属性用于...

    ant,jprofile二合一视频

    而JProfiler的使用通常涉及以下步骤:启动或附加到正在运行的Java进程,选择要分析的CPU或内存视图,然后开始会话以收集数据。在CPU视图中,可以看到方法调用的耗时,而在内存视图中,可以检查对象分配和内存泄漏。...

    Shell执行/调用Java/Jar程序例子

    压缩包中的`shell-run-java-by-ant`可能指的是使用Ant来构建和运行Java项目。Ant是Apache的一个开源项目,它是一个基于XML的构建工具,用于编译、打包、测试Java项目等任务。通过Ant的`&lt;java&gt;`任务,可以在构建脚本...

    ant启动tomcat

    - `&lt;arg line="stop"/&gt;`:向Java进程传递参数,告诉Tomcat执行停止操作。 3. **tomcat.debug**: - `&lt;target name="tomcat.debug"&gt;`:定义了名为“tomcat.debug”的目标。 - `&lt;jvmarg value="-Xdebug"/&gt;`:启用...

    Ant编译打包android工程流程

    1. **使用aapt为项目资源生成R.java文件** - **工具介绍**:aapt(Android Asset Packaging Tool)是Android SDK中用于处理应用程序资源的工具。 - **作用**:通过分析项目中的资源文件(如图片、布局文件等),...

    基于Java向zip压缩包追加文件

    - 为了保证操作的原子性,可以考虑在处理过程中使用文件锁,以防止在压缩过程中文件被其他进程修改。 - 如果ZIP文件非常大,解压和再压缩的过程可能会消耗大量时间和资源,因此在处理大数据量时需要谨慎设计。 6....

    cse7343-courseproject:使用Processing Java对操作系统进程,PCB,队列和内存管理进行模拟

    它使用双链表来表示进程队列,并使用最适合,最适合和最不适合的算法来管理内存。 可视化文件是通过处理库创建的。 如何构建和运行程序 要从源代码构建,请从项目根目录(此目录)执行ant 。 如果您已收到一个zip...

    Java Service Wrapper部署说明

    完成配置后,可以通过执行Wrapper的可执行文件来启动你的Java应用程序,Wrapper会监控Java进程的状态,确保程序的稳定运行,并支持开机自启动。在Windows的任务管理器中,你可以看到`wrapper.exe`和`java.exe`两个...

    ant标签详解

    ### ant标签详解 #### 1. `&lt;project&gt;` 标签 `&lt;project&gt;` 标签是构建文件的基础,每一个构建文件...以上标签和数据类型的使用使得 Ant 成为了一种强大的自动化构建工具,能够有效地管理项目的构建流程,提高开发效率。

    ant使用指南

    Apache Ant 是一个强大的构建工具,尤其在Java开发领域中广泛使用。它是一个基于XML的工具,允许开发者通过定义任务(targets)和它们之间的依赖关系来自动化构建过程,如编译、打包、测试等。Ant的核心文件是`build...

Global site tag (gtag.js) - Google Analytics