一种在Windows系统中对Java虚拟机进程的管理方法及系统的制作方法

文档序号:6539654阅读:149来源:国知局
一种在Windows系统中对Java虚拟机进程的管理方法及系统的制作方法
【专利摘要】本发明公开一种在Windows系统中对Java虚拟机进程的管理方法及系统,管理方法包括:获取指定查杀Java虚拟机进程的标识字符串作为指定查杀标识字符串;获取所有的所述Java虚拟机进程的进程信息作为待检索进程信息,所述待检索进程信息包括与所述Java虚拟机进程关联的进程号以及标识字符串;从所述待检索信息中检索与所述指定查杀标识字符串相同的标识字符串作为待查杀标识字符串,获取与所述待查杀标识字符串对应的进程号作为待查杀Java虚拟机进程号;杀死所述待查杀Java虚拟机进程号对应的Java虚拟机进程。本发明整个查杀流程完全脚本化。非常有利于程序集成,实现智能化控制,无需任何人工干预。
【专利说明】—种在Wi ndows系统中对Java虚拟机进程的管理方法及系统
【技术领域】
[0001]本发明涉及Java虚拟机进程相关【技术领域】,特别是一种在Windows系统中对Java虚拟机进程的管理方法及系统。
【背景技术】
[0002]Java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。每个Java程序运行时均会在系统上生成一个Java虚拟机进程。
[0003]一个Java虚拟机进程需要进行管理,即在需要时启动,在Java虚拟机进程没有后续需要时杀死,以回收资源避免浪费。
[0004]现在Windows查杀Java虚拟机进程的方法主要有两种:一种是通过Windows任务管理器肉眼识别,然后查杀。另一种是通过taskki 11命令行工具进程查杀。其中,taskki 11是Windows查杀Java虚拟机进程的命令行工具。而任务管理器是Windows查看系统进程信息和查杀Java虚拟机进程的图形化工具。
[0005]使用任务管理器查杀Java虚拟机进程,由于任务管理器没有提供批处理调用接口,无法在脚本中使用,不能实现自动化。使用taskkill命令只能通过进程映像或进程ID进行查杀。如果使用进程映像进行查杀,所有进程映像名相同的进程都会被杀掉。例如,使用java命令启动多个java进程,由于进程映像名都是java.exe,所以所有的java进程都会被杀掉,不能区分查杀。因为批处理命令启动进程时不能输出进程ID,所以在脚本中根本没法使用进程ID进行查杀。因此,现有的机制,在Windows系统下,由于无法使用批处理脚本智能化区分查杀java虚拟机进程,需要人工干预,从而不利于Java进程的智能化管理与系统集成,还浪费了大量的人力物力。

【发明内容】

[0006]基于此,有必要针对现有技术在Windows上无法采用批处理命令对Java虚拟机进程进行自动化管理的技术问题,提供一种在Windows系统中对Java虚拟机进程的管理方法及系统。
[0007]一种在Windows系统中对Java虚拟机进程的管理方法,包括:
[0008]步骤11,获取指定查杀Java虚拟机进程的标识字符串作为指定查杀标识字符串,执行步骤12 ;
[0009]步骤12,获取所有的所述Java虚拟机进程的进程信息作为待检索进程信息,所述待检索进程信息包括与所述Java虚拟机进程关联的进程号以及标识字符串,执行步骤13 ;
[0010]步骤13,从所述待检索信息中检索与所述指定查杀标识字符串相同的标识字符串作为待查杀标识字符串,获取与所述待查杀标识字符串对应的进程号作为待查杀Java虚拟机进程号,执行步骤14;
[0011 ] 步骤14,杀死所述待查杀Java虚拟机进程号对应的Java虚拟机进程。
[0012]一种在Windows系统中对Java虚拟机进程的管理系统,包括:
[0013]指定查杀标识字符串获取模块,用于获取指定查杀Java虚拟机进程的标识字符串作为指定查杀标识字符串,执行待检索进程信息获取模块;
[0014]待检索进程信息获取模块,用于获取所有的所述Java虚拟机进程的进程信息作为待检索进程信息,所述待检索进程信息包括与所述Java虚拟机进程关联的进程号以及标识字符串,执行待查杀Java虚拟机进程号获取模块;
[0015]待查杀Java虚拟机进程号获取模块,用于从所述待检索信息中检索与所述指定查杀标识字符串相同的标识字符串作为待查杀标识字符串,获取与所述待查杀标识字符串对应的进程号作为待查杀Java虚拟机进程号,执行进程杀死模块;
[0016]进程杀死模块,用于杀死所述待查杀Java虚拟机进程号对应的Java虚拟机进程。
[0017]本发明通过在所有的所述Java虚拟机进程的进程信息中进行检索,获取与指定查杀Java虚拟机进程的标识字符串相同的待查杀标识字符串,根据待查杀标识字符串获取对应的进程号,从而杀死对应的Java虚拟机进程。本发明的整个流程均可以采用批处理的方式执行,因此能够很好地对Java虚拟机进程进行自动化管理。整个查杀流程完全脚本化。非常有利于程序集成,实现智能化控制,无需任何人工干预。
【专利附图】

【附图说明】
[0018]图1为本发明一种在Windows系统中对Java虚拟机进程的管理方法的工作流程图;
[0019]图2为本发明的一个单实例查杀例子的工作流程图;
[0020]图3为本发明一种在Windows系统中对Java虚拟机进程的管理系统的结构模块图。
【具体实施方式】
[0021]下面结合附图和具体实施例对本发明做进一步详细的说明。
[0022]如图1所示为本发明一种在Windows系统中对Java虚拟机进程的管理方法的工作流程图,包括:
[0023]步骤11,获取指定查杀Java虚拟机进程的标识字符串作为指定查杀标识字符串,执行步骤12 ;
[0024]步骤12,获取所有的所述Java虚拟机进程的进程信息作为待检索进程信息,所述待检索进程信息包括与所述Java虚拟机进程关联的进程号以及标识字符串,执行步骤13 ;
[0025]步骤13,从所述待检索信息中检索与所述指定查杀标识字符串相同的标识字符串作为待查杀标识字符串,获取与所述待查杀标识字符串对应的进程号作为待查杀Java虚拟机进程号,执行步骤14;
[0026]步骤14,杀死所述待查杀Java虚拟机进程号对应的Java虚拟机进程。
[0027]用户可以通过指定查杀Java虚拟机进程的标识字符串,从而指定所要查杀的Java虚拟机进程。在步骤12中,可以采用jps -1命令获取所有的所述Java虚拟机进程的进程信息,然后执行步骤13,从所获取的所有的所述Java虚拟机进程的进程信息中,查找指定查杀Java虚拟机进程的标识字符串,从而获得对应的进程号,在步骤14中完成查杀。在步骤14中,可以采用taskkill命令杀死所述待查杀Java虚拟机进程号对应的Java虚拟机进程。
[0028]本发明所采用方法,能够采用批处理方式执行,因此,能在Windows中实现智能化控制,无需任何人工干预。
[0029]在其中一个实施例中,还包括单实例批处理步骤,具体包括:
[0030]使用批处理命令获取待启动的Java虚拟机进程的标识字符串作为启动标识字符串;
[0031]使用批处理命令按照启动标识字符串启动Java虚拟机进程;
[0032]如果接收到杀死Java虚拟机进程的请求,执行步骤11,且所述指定查杀Java虚拟机进程的标识字符串为所述指定查杀Java虚拟机进程的启动标识字符串。
[0033]Java虚拟机进程是通过将Java的代码进行实例化后得到,本实施例是单实例批处理的例子,其中,所述单实例指的是对同一套代码仅实例一次。此时代码对应的标识字符串唯一,可以通过标识字符串指定对应的Java虚拟机进程。
[0034]在本实施例中,首先通过批处理命令启动Java虚拟机进程,
[0035]在批处理的过程中,当满足需要杀死Java虚拟机进程的条件时,则向系统请求杀死指定的Java虚拟机进程,由于每个Java虚拟机进程中启动时是按照启动标识字符串进行启动,因此在启动时已经获取到了启动标识字符串。因此,要杀死任意一个Java虚拟机进程,只需要在执行步骤11时,将所述指定查杀Java虚拟机进程的标识字符串为所述Java虚拟机进程的启动标识字符串。
[0036]整个过程都可以在批处理过程中实现,从而实现整体的智能化控制。
[0037]在其中一个实施例中,所述标识字符串为启动所对应的Java虚拟机进程时指定的包括对应jar包包名的程序入口类的名称。
[0038]在Windows系统中,启动一个Java虚拟机进程,需要提供Jar包的名称,例如com.jd.App,并同时需要提供Jar包中程序入口类的名称,在一个Jar包中可以包括多套执行不同功能的程序代码,每套程序代码都有一个固定的程序入口类。在启动Java虚拟机进程时,需要提供程序入口类的名称,从而在启动的Java虚拟机进程中,执行该程序入口类对应的程序代码。而在使用jps -1之后,就会显示一个包括所有Java虚拟机进程的java进程列表,在这个Java进程列表中,会显示每个Java虚拟机进程的进程号及包括Jar包包名的程序入口类的名称。因此,可以通过检索获取到待查杀的Java虚拟机进程的进程号,从而最终采用taskkill杀死。
[0039]在其中一个实施例中,还包括多实例启动步骤,具体包括:
[0040]获取生成Java虚拟机进程的jar包;
[0041]将所述jar包中Java虚拟机进程对应的程序入口类复制为多份执行相同功能的程序入口复制类;
[0042]修改所述程序入口复制类的名称,使得每份程序入口复制类的名称唯一;
[0043]将修改后具有唯一名称的程序入口复制类加入所述jar包;[0044]使用所述jar包按照每个程序入口复制类的名称,分别为每个程序入口复制类启动对应的Java虚拟机进程。
[0045]本实施例是对应多实例启动,由于同一个Jar包中的一套程序代码可以进行多次实例化,并在多个Java虚拟机进程中运行,因此,此时如果用jps -1会得到同一个程序入口类的名称对应多个进程号,从而难以分辨待查杀Java虚拟机进程。因此,本实施例中,将jar包中Java虚拟机进程对应的程序入口类复制为多份执行相同功能的程序入口复制类,并修改所述程序入口复制类的名称,使得每份程序入口复制类的名称唯一,然后分别启动。则此时启动后,每个Java虚拟机进程的标识字符串将会唯一,方便后续查杀。
[0046]在其中一个实施例中,还包括多实例批处理步骤,具体包括:
[0047]执行多实例启动步骤,启动多个Java虚拟机进程;
[0048]将每个程序入口复制类的名称与对应的jar包的包名组成对应每个Java虚拟机进程的标识字符串,作为每个Java虚拟机进程的启动标识字符串;
[0049]如果接收到杀死Java虚拟机进程的请求,执行步骤11,且所述指定查杀Java虚拟机进程的标识字符串为所述指定查杀Java虚拟机进程的启动标识字符串。
[0050]如图2所示为本发明的一个单实例查杀例子的工作流程图,包括:
[0051]步骤S201,指定要查杀的Java虚拟机进程的标识字符串;
[0052]步骤S202,使用jps-Ι命令列出包括所有的Java虚拟机进程的进程信息的进程信息列表;
[0053]步骤S203,遍历进程信息列表;
[0054]步骤S204,使用批处理命令获取每个Java虚拟机进程的标识字符串字段;
[0055]步骤S205,判断该标识字符串字段是否与要查杀的Java虚拟机进程的标识字符串相同。如果相同则获取该标识字符串字段对应的进程号,然后执行步骤S206,如果不相同,则执行步骤S207 ;
[0056]步骤S206,根据步骤S205获取的进程号,查杀该Java虚拟机进程,退出;
[0057]步骤S207,判断遍历是否结束,如果没有结束,则执行步骤S203继续遍历查杀,否则退出。
[0058]如图3所示为本发明一种在Windows系统中对Java虚拟机进程的管理系统的结构模块图,包括:
[0059]指定查杀标识字符串获取模块301,用于获取指定查杀Java虚拟机进程的标识字符串作为指定查杀标识字符串,执行待检索进程信息获取模块;
[0060]待检索进程信息获取模块302,用于获取所有的所述Java虚拟机进程的进程信息作为待检索进程信息,所述待检索进程信息包括与所述Java虚拟机进程关联的进程号以及标识字符串,执行待查杀Java虚拟机进程号获取模块;
[0061]待查杀Java虚拟机进程号获取模块303,用于从所述待检索信息中检索与所述指定查杀标识字符串相同的标识字符串作为待查杀标识字符串,获取与所述待查杀标识字符串对应的进程号作为待查杀Java虚拟机进程号,执行进程杀死模块;
[0062]进程杀死模块304,用于杀死所述待查杀Java虚拟机进程号对应的Java虚拟机进程。
[0063]在其中一个实施例中,还包括单实例批处理模块,具体用于:[0064]使用批处理命令获取待启动的Java虚拟机进程的标识字符串作为启动标识字符串;
[0065]使用批处理命令按照启动标识字符串启动Java虚拟机进程;
[0066]如果接收到杀死Java虚拟机进程的请求,执行指定查杀标识字符串获取模块,且所述指定查杀Java虚拟机进程的标识字符串为所述指定查杀Java虚拟机进程的启动标识字符串。
[0067]在其中一个实施例中,所述标识字符串为启动所对应的Java虚拟机进程时指定的包括对应jar包包名的程序入口类的名称。
[0068]在其中一个实施例中,还包括多实例启动模块,具体用于:
[0069]获取生成Java虚拟机进程的jar包;
[0070]将所述jar包中Java虚拟机进程对应的程序入口类复制为多份执行相同功能的程序入口复制类;
[0071]修改所述程序入口复制类的名称,使得每份程序入口复制类的名称唯一;
[0072]将修改后具有唯一名称的程序入口复制类加入所述jar包;
[0073]使用所述jar包按照每个程序入口复制类的名称,分别为每个程序入口复制类启动对应的Java虚拟机进程。
[0074]在其中一个实施例中,还包括多实例批处理模块,具体用于:
[0075]执行多实例启动模块,启动多个Java虚拟机进程;
[0076]将每个程序入口复制类的名称与对应的jar包的包名组成对应每个Java虚拟机进程的标识字符串,作为每个Java虚拟机进程的启动标识字符串;
[0077]如果接收到杀死Java虚拟机进程的请求,执行指定查杀标识字符串获取模块,且所述指定查杀Java虚拟机进程的标识字符串为所述指定查杀Java虚拟机进程的启动标识字符串。
[0078]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种在Windows系统中对Java虚拟机进程的管理方法,其特征在于,包括: 步骤(11 ),获取指定查杀Java虚拟机进程的标识字符串作为指定查杀标识字符串,执行步骤(12); 步骤(12),获取所有的所述Java虚拟机进程的进程信息作为待检索进程信息,所述待检索进程信息包括与所述Java虚拟机进程关联的进程号以及标识字符串,执行步骤(13); 步骤(13),从所述待检索信息中检索与所述指定查杀标识字符串相同的标识字符串作为待查杀标识字符串,获取与所述待查杀标识字符串对应的进程号作为待查杀Java虚拟机进程号,执行步骤(14); 步骤(14),杀死所述待查杀Java虚拟机进程号对应的Java虚拟机进程。
2.根据权利要求1所述的在Windows系统中对Java虚拟机进程的管理方法,其特征在于,还包括单实例批处理步骤,具体包括: 使用批处理命令获取待启动的Java虚拟机进程的标识字符串作为启动标识字符串; 使用批处理命令按照启动标识字符串启动Java虚拟机进程; 如果接收到杀死Java虚拟机进程的请求,执行步骤(11 ),且所述指定查杀Java虚拟机进程的标识字符串为所述指定查杀Java虚拟机进程的启动标识字符串。
3.根据权利要求1所述的在Windows系统中对Java虚拟机进程的管理方法,其特征在于,所述标识字符串为启动所对应的Java虚拟机进程时指定的包括对应jar包包名的程序入口类的名称。`
4.根据权利要求3所述的在Windows系统中对Java虚拟机进程的管理方法,其特征在于,还包括多实例启动步骤,具体包括: 获取生成Java虚拟机进程的jar包; 将所述jar包中Java虚拟机进程对应的程序入口类复制为多份执行相同功能的程序入口复制类; 修改所述程序入口复制类的名称,使得每份程序入口复制类的名称唯一; 将修改后具有唯一名称的程序入口复制类加入所述jar包; 使用所述jar包按照每个程序入口复制类的名称,分别为每个程序入口复制类启动对应的Java虚拟机进程。
5.根据权利要求4所述的在Windows系统中对Java虚拟机进程的管理方法,其特征在于,还包括多实例批处理步骤,具体包括: 执行多实例启动步骤,启动多个Java虚拟机进程; 将每个程序入口复制类的名称与对应的jar包的包名组成对应每个Java虚拟机进程的标识字符串,作为每个Java虚拟机进程的启动标识字符串; 如果接收到杀死Java虚拟机进程的请求,执行步骤(11),且所述指定查杀Java虚拟机进程的标识字符串为所述指定查杀Java虚拟机进程的启动标识字符串。
6.一种在Windows系统中对Java虚拟机进程的管理系统,其特征在于,包括: 指定查杀标识字符串获取模块,用于获取指定查杀Java虚拟机进程的标识字符串作为指定查杀标识字符串,执行待检索进程信息获取模块; 待检索进程信息获取模块,用于获取所有的所述Java虚拟机进程的进程信息作为待检索进程信息,所述待检索进程信息包括与所述Java虚拟机进程关联的进程号以及标识字符串,执行待查杀Java虚拟机进程号获取模块; 待查杀Java虚拟机进程号获取模块,用于从所述待检索信息中检索与所述指定查杀标识字符串相同的标识字符串作为待查杀标识字符串,获取与所述待查杀标识字符串对应的进程号作为待查杀Java虚拟机进程号,执行进程杀死模块; 进程杀死模块,用于杀死所述待查杀Java虚拟机进程号对应的Java虚拟机进程。
7.根据权利要求6所述的在Windows系统中对Java虚拟机进程的管理系统,其特征在于,还包括单实例批处理模块,具体用于: 使用批处理命令获取待启动的Java虚拟机进程的标识字符串作为启动标识字符串; 使用批处理命令按照启动标识字符串启动Java虚拟机进程; 如果接收到杀死Java虚拟机进程的请求,执行指定查杀标识字符串获取模块,且所述指定查杀Java虚拟机进程的标识字符串为所述指定查杀Java虚拟机进程的启动标识字符串O
8.根据权利要求6所述的在Windows系统中对Java虚拟机进程的管理系统,其特征在于,所述标识字符串为启动所对应的Java虚拟机进程时指定的包括对应jar包包名的程序入口类的名称。
9.根据权利要求8所述的在Windows系统中对Java虚拟机进程的管理系统,其特征在于,还包括多实例启动模块,具体用于: 获取生成Java虚拟机进程的jar包; 将所述jar包中Java虚拟机进程对应的程序入口类复制为多份执行相同功能的程序入口复制类; 修改所述程序入口复制类的名称,使得每份程序入口复制类的名称唯一; 将修改后具有唯一名称的程序入口复制类加入所述jar包; 使用所述jar包按照每个程序入口复制类的名称,分别为每个程序入口复制类启动对应的Java虚拟机进程。
10.根据权利要求9所述的在Windows系统中对Java虚拟机进程的管理系统,其特征在于,还包括多实例批处理模块,具体用于: 执行多实例启动模块,启动多个Java虚拟机进程; 将每个程序入口复制类的名称与对应的jar包的包名组成对应每个Java虚拟机进程的标识字符串,作为每个Java虚拟机进程的启动标识字符串; 如果接收到杀死Jav a虚拟机进程的请求,执行指定查杀标识字符串获取模块,且所述指定查杀Java虚拟机进程的标识字符串为所述指定查杀Java虚拟机进程的启动标识字符串O
【文档编号】G06F9/455GK103823710SQ201410079734
【公开日】2014年5月28日 申请日期:2014年3月6日 优先权日:2014年3月6日
【发明者】王崟平 申请人:北京京东尚科信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1