2012-11-16 222 views
-2

我一直想制作一个程序,让我的朋友陷入困境,无法使用“X”按钮关闭它,但他们仍然可以结束这个过程。有没有办法让它检查进程是否正在运行,并且如果不重新打开它自己?谢谢。Java检查进程是否正在运行,如果没有运行文件?

我正在使用Windows。

+0

我觉得如果你要问互联网怎么做这样的事惹你的朋友,你真的不希望启动这个种种仇恨。另外你基本上只是问我们如何写病毒。 – djechlin

+0

欢迎来到SO。请在**提交问题前阅读FAQ ** – home

回答

1

首先,您可以使用JFrame的方法/函数setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE)不关闭,当你按下“X”按钮。

当您运行您的应用程序时,您可以打开一个虚拟套接字端口。这样,当你再次打开应用程序时,你可以“检查”是否有任何使用它的进程。如果是的话,你可以抛出异常。

为例(放在主类的代码):

private static final int 
io_onetime_port = 60106; 

private static final ServerSocket 
io_onetime_semaphore; 

static 
{ 
    ServerSocket lo_onetime_execution = null; 

    try 
    { 
     lo_onetime_execution = new ServerSocket(io_onetime_port); 
    } 
    catch(Exception ex) { 
     System.err.println("Already open"); 
     System.exit(1); 
    } 

    io_onetime_semaphore = lo_onetime_execution. 
} 
相关问题