最简单的,你在应用中开一个ServerSocket。后开的应用的用Socket,设置setSoTimeout(500),再连指定的端口,如果产生java.net.SocketTimeoutException,就表明尚未打开这个应用,继续。否则已打开, System.exit。服务端如果发现有人连这个ServerSocket,就最大化,等等...
这个方案不涉及JNI,难度小,效果也不差。

解决方案 »

  1.   

    littlecpu(CSDN, 随时随地,想上就上。) 说的很清楚了,前些天我做了个程序就用了这种方式。如果嫌开端口浪费的话可以通过文件来实现
      

  2.   

    曾经在vc中实现过这个功能。java因为对跨平台得支持所以很多操作系统的特性都不能利用,所以littlecpu(CSDN, 随时随地,想上就上。) 提供的思路还是很不错的。
      

  3.   

    java是不行的,至少我还没找到方法!!!我是用DLL实现的!!!
      

  4.   

    你的DLL能否给我一份,mail:[email protected]