在写一个程序需要用到这个判断 。然而Runtime.getRuntime().exec(String s)检索进程树的方法 只能检测到exe进程 而我看了一下 java程序运行时 任务管理器中始终只有一个javaw.exe 这样就无法区别是那一个java程序在运行。不知还有别的办法能解决这个问题不,感激不尽!
运行开始的时候创建个临时文件,运行结束删除,判断文件是否存在确定程序运行!
那个程序是不是你写的,如果是,那么可以在里面定义一个互斥量。你的程序可以读取到它,判断是否已经运行。
除非你把java程序做成exe,否则开启的都是javaw.exe进程。
往temp目录下写一个特定名字文件,程序退出的时候删除。
定时打印日志记录来判定
你启动多个线程,注意只是线程是由javaw进程创建的,进程可以看到,如果想看线程名字,getthreadname()获取当前进程名
java程序也有命令行的。可以判断其对应的命令行。
其次,如果程序是你写的还有一个复杂的方法就是起一个socket之类的,你的连接这个连不通就表示没在运行。
可以通过定时打日志来查看,
绑定一个端口,程序启动前绑定一下 看看这个是否曾经绑定过!