Java下如何启动windows 的程序

Java的java.lang.Runtime类提供了运行 Windows下cmd环境的方法exec(String command),所有在Windows cmd命令窗口下执行的程序,都能利用这个方法执行。

下边提供两个封装后的代码,一个是查看程序是否在运行,另一个是启动程序:

1、查看程序是否在运行:其中tasklist /FI "IMAGENAME eq processName.exe"是在Windows CMD命令下执行的命令

/**
	 * 判断某个进程是否在运行中
	 * @param processName
	 * @return
	 */
	public static boolean isRunning(String processName)
    {

        BufferedReader bufferedReader = null;
        try
        {
            Process proc = Runtime.getRuntime().exec("tasklist /FI \"IMAGENAME eq "
                    + processName
                    + "\"");
            bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            String line = null;
            while ((line = bufferedReader.readLine()) != null)
            {
                if (line.contains(processName)) //判断是否存在
                {
                    return true;
                }
            }
            return false;
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
            return false;
        }
        finally
        {
            if (bufferedReader != null)
            {
                try
                {
                    bufferedReader.close();
                }
                catch (Exception ex)
                {
                }
            }
        }
    }

2、执行某个程序,comand例为:start "" "E:\\CardListen\\CardReaderServer.exe"  "127.0.0.1" "8080",详情可看CMD start命令

/**
	 * 执行Cmd命令
	 * @param command
	 * @return
	 * @throws IOException
	 */
	public static String executeCmd(String command) throws IOException {
	    Runtime runtime = Runtime.getRuntime();
	    Process process = runtime.exec("cmd /c " + command);
	    BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));
	    String line = null;
	    StringBuilder build = new StringBuilder();
	    while ((line = br.readLine()) != null) {
	        build.append(line);
	    }
	    return build.toString();
	}  

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-20 18:57:05

Java下如何启动windows 的程序的相关文章

Java多次启动相同jar程序

背景 现在很多软件都支持集群部署,但是测试环境通常资源有限,所以一般通过单台机器模拟集群部署(使用不同端口,运行相同jar包),本文的目的就是通过多种方式实现此需求. 两个程序 1.jar程序 ① springboot程序 ② 只包含一个main方法,用于启动程序,输出进程ID ③ 路径:C:/demo.jar(windows) /demo.jar(Linux) 2.启动程序 ① 包含main方法的程序 多种方式 1.通过URLClassLoader加载jar程序(windows平台) 2.通过

linux系统下memcached启动正常但程序无法连接的问题解决

在虚拟机linux安装好memcached之后,试着用java程序连接一下memcached的服务端,但却出现了以下错误 com.schooner.MemCached.SchoonerSockIOPool Fri Jan 09 09:45:59 CST 2015 - ++++ failed to get SockIO obj for: 192.168.168.2:11211 com.schooner.MemCached.SchoonerSockIOPool Fri Jan 09 09:45:59

windows下通过pid 找到运行程序的路径

windows下通过pid 找到运行程序的路径 有没有遇到过这样的情景,通过window的任务管理器,查看到好多相同的进程名.比方说 一台机器上运行几个tomcat进程, 在任务管理器上 只能显示 java进程名 ,这是pid不同.这时如果想知道到底是启动的那个tomcat占用的资源最多,就要看一下进程的执行路径确定一下.方法其实也挺简单的 在命令提示符下输入一下命令就可以了wmic process  list 查看所有的进程的wmic process get name,executablepa

windows下使用eclipse调试C程序

一.环境描述 Eclipse IDE for C/C++ Developers version 4.4.0 MinGW  gcc/g++ version 4.8.1;gdb version 7.6.1 二.操作步骤 1.新建工程 2.编译源程序 3.调试设置 Run-->Debug Configurations-->Debugger,设置调试器目标 4.启动调试 三.说明 windows下Eclipse调试C程序时,会出现无法使用printf和scanf的情况:console没有输出.原因是由

在电脑上找到这个路径:D:\jakarta-tomcat-6\conf\Catalina,将localhost目录直接删除掉,再一运行,就没事了! 因为配置文件中配置了启动程序,而webapps文件夹下却没有此应用程序,所以出现了上述错误。

java.lang.IllegalArgumentException: Document base D:\appservers\apache-tomcat-6.0.20\webapps\megaeyes_enterprise_manager does not exist or is not a readable directory 2010-05-20 15:28:31|  分类: tomcat|举报|字号 订阅 2010-5-20 15:22:44 org.apache.catalina.co

Windows下tomcat进程监控批处理程序

在Windows下tomcat进程监控批处理程序脚本如下: @echo off ::tomcat安装目录 set _tomcatDir=E:\myFiles\apache-tomcat-8.5.31 set _curlDir=E:\myFiles\apache-tomcat-8.5.31\curl set "httpcode=" ::访问tomcat cd /d %_curlDir% for /f "delims=" %%r in ('CURL.EXE -m 60

交通银行 Java Socket 服务启动 管理 WINDOWS 版

按照交通银行提供的无界面启动方法试验了很多次,都没有成功,所以自己动手用C# 知识写了一个. 小工具可以判断 交通银行 JAVA SOCKET 服务是否启动,并可以启动/关闭服务 主要代码如下: 判断服务是否启动 引用 :using System.Management; SelectQuery selectQuery = new SelectQuery(“select * from Win32_Process where Name = ‘java.exe’”); object cmdLine =

使用spring等框架的web程序在Tomcat下的启动顺序及思路理清

大牛请绕过,此文仅针对自己小白水平,对web程序的启动流程做个清晰的回顾. 一.使用spring等框架的web程序在Tomcat下的启动流程 1)Tomcat是根据web.xml来启动的.首先到web.xml 2)web.xml中负责启动spring和spring mvc.对应的启动配置文件分别是 启动spring mvc,并进行所有资源路径映射 <servlet> <servlet-name>springMVC</servlet-name> <servlet-c

java获取cmd启动的程序的PID

笔记整理: 1 /*java获取cmd启动程序的PID */ 2 /*zzq581573832013-05-08上传*/ 3 //代码: 4 static interface Kernel32 extends Library{ 5 public static Kernel32 INSTANCE=(Kernel32) 6 Native.loadLibrary("kernel32", Kernel32.class); 7 public int GetProcessId(Long hProc