swing判断程序是否已经运行。。。

yangjinCK 2010-12-29 04:03:13

try {
//
String os_name = System.getProperty("os.name");
// 指定文件锁路径
String path = null;
if (os_name.indexOf("Windows") > -1) {
// 如果是Windows操作系统
path = System.getProperty("user.home")
+ System.getProperty("file.separator");
} else {
path = "/usr/temp/";
}
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs();
}
// 程序名称
String applicationName = "sms";
RandomAccessFile fis = new RandomAccessFile(path + applicationName
+ ".lock", "rw");

FileChannel lockfc = fis.getChannel();
FileLock flock = lockfc.tryLock();

System.out.println(OnProcess.isLink());

if (flock == null) {
ShowMessageDialog show=new ShowMessageDialog();
show.show(2, "程序已经运行到托盘!请点击托盘图标运行程序..");
return true;
}


用这种简单方式只能判断程序已经运行了
但有个问题
如果我的程序第一次运行了,并且在托盘处托盘了
如果我再点击一次开始启动程序,要怎么才能找到先前那个进程
让托盘的程序弹出
大家看看快拨那个就知道了
谢谢高人指点啊


...全文
183 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangjinCK 2010-12-30
  • 打赏
  • 举报
回复
来个大虾发个例子小弟看看吧
刚从.NET转java什么都不太清楚啊
yangjinCK 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sunyiz 的回复:]
判断进程是否已经运行?
估计是要调用系统接口了

比如windows可以通过

Java code
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("cmd /c Tasklist /v");
BufferedReader in = new BufferedReader(new Input……
[/Quote]


要怎么进入这个进程去执行里面的函数呢
yangjinCK 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dyllove98 的回复:]
这种程序就要通过任务管理器来判断
window 下 cmd /c Tasklist /v
unix linux ps -ef | grep 用户

引用 1 楼 sunyiz 的回复:

判断进程是否已经运行?
估计是要调用系统接口了

比如windows可以通过
Java code
Runtime runtime = Runtime.getRuntime();
Proc……
[/Quote]


得到这个进程名要怎么进入这个进程哦
Jlins 2010-12-29
  • 打赏
  • 举报
回复
这种程序就要通过任务管理器来判断
window 下 cmd /c Tasklist /v
unix linux ps -ef | grep 用户
[Quote=引用 1 楼 sunyiz 的回复:]

判断进程是否已经运行?
估计是要调用系统接口了

比如windows可以通过
Java code
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("cmd /c Tasklist /v");
BufferedReader in = new BufferedReader(new InputStr……
[/Quote]
huntor 2010-12-29
  • 打赏
  • 举报
回复
《Swing Hacks》 Hack 84. Construct Single-Launch Applications
yangjinCK 2010-12-29
  • 打赏
  • 举报
回复
难道没人遇到过这个问题啊
我顶
yangjinCK 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sunyiz 的回复:]
判断进程是否已经运行?
估计是要调用系统接口了

比如windows可以通过

Java code
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("cmd /c Tasklist /v");
BufferedReader in = new BufferedReader(new Input……
[/Quote]


我想由这个进程跳到那个进程去执行
该咋搞啊
sunyiz 2010-12-29
  • 打赏
  • 举报
回复
判断进程是否已经运行?
估计是要调用系统接口了

比如windows可以通过
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("cmd /c Tasklist /v");
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String s = "";
while ((s = in.readLine()) != null) {
//处理字符串
}

这样来判断你的某个进程是否执行了
不过貌似java的程序都是javaw.exe啊
囧了

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧