本站首页 返回顶部 关于博主

让程序只能加载一次

很多时候,我们只允许某个程序加载一次。也就是说,不允许这个程序的两个进程同时运行。 要实现这个功能中,该怎么做呢?本文将讨论Java中是如何实现的。 我找到了如下几个备选方案。
 
1.在临时文件中标记程序的状态。
此方法提出者的观点是这样的:当程序运行时,在某个文件临时文件中写一个标记1;在程序退出时把这个标记改成0。在程序加载时,检查这个文件中的标记值 是什么,如果是0,则意味这系统中没有程序的运行实例。此时可以继运行。如果是1,那就意味着程序已经加载了一个实例,这时就可以直接退出了。 理论上似乎是可以的,但现实往往没那么完美。假设,当程序运行时,临时文件中的标记已经改为1了,这个时候程序异常退出,或者此时强行关掉Java虚拟机呢?程序显然会终止运行,但是临时文件中的标记却停留在了1,而不是期望中的0。当再次加载程序时,显然它会错误地认为已经有一个实例在运行了。 所以,这条路走不通。 阅读全文 »

星月天气更新

  星月天气版本由0.9.2升级到0.9.3,新增功能如下:
    1.程序启动时,如果没有添加任何城市,那么进入设置选项的“添加城市”和“删除城市”菜单。
    2.如果没有添加任何城市,进入“天气预报”菜单,系统提示“请先添加城市”。
    3.如果没有添加任何城市,进入“删除城市”菜单,系统提示“尚未添加任何城市,无需删除”。
  下载地址:星月天气

The SWT FAQ中文(4)

英文原文:http://www.eclipse.org/swt/faq.php  版本:Version 1.0

The SWT FAQ

7.问: 怎样为我的平台编译Eclipse执行文件?
答:Eclipse是被二进制可执行文件加载。执行二进制文件后,它弹出进度画面,加载虚拟机。对于不同的窗口系统、操作系统和硬件构架,我们必须为之编译不同的二进制文件。要么从CVS代码库编译,要么从下载的eclipse SDK编译。 阅读全文 »