中山大學 West BBS-西子灣站

『主選單』
分類佈告
分類精華
休閒聊天
個人郵件
個人設定
重新登入
『應數系Java程式設計(楊昌彪老師)』一般區佈告
←回列表  ↑上一篇  ↓下一篇        張貼  回應       
發信人: ederluo ( )    看板: math-java
日期: Thu Apr 27 14:19:41 2000
標題: 常駐Java程式

用Java寫Windows常駐程式


    以下的東西各位就看看,如果覺得有問題歡迎提出或反駁。


    在早期的單工作業系統(如DOS),有些人會在開機時順便執行
    
一些不會因為跑其他程式而終止的程式,例如防毒程式。這些程式

都有一直存活在記憶體中的特性,通常我們會把這類程式稱為

「常駐程式」。


    而在原本即為多工的作業系統或新一代的作業系統(如Unix, Linux, 
    
MS-Windows),由於作業系統允許多工的存在,所以一個程式通常可以

在不被停止的情況下一直執行(不管它有沒有做任何有意義的工作),

在這種情況下,所有的程式都可以視為是常駐的,只要它沒有被停止。

於是,Windows的常駐程式這個問題本身的意義與價值就可能被挑戰與否定。


    先不論問題本身的意義與價值,在實際上可能有人還是會希望寫出類似
    
防毒軟體之類的「常駐程式」(我們仍然用這個名詞,或許這樣比較容易想像)。

在Unix工作站的環境中,一個開機時會執行而且具有類似常駐程式的程式我們

稱為Daemon,例如telnetd、named、sendmail等程式,它們都是在等待著相對應

的事件發生並對於這些事件能隨時反應進行相關的服務與工作。類似的程式在

MS-Windows中我們不叫做daemon,MS有另外一個名詞來表示這類的程式:Service。

如果您只是要寫個程式不關掉它而已,那就不用考慮這麼多了。


    讓程式變成一個service的其中一個解決的方法是

將執行檔放在registry中
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
或
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunService(服務)
在使用者登入前執行。


    另外一個問題是如果我們是用Java寫的,那在使用JVM的時候不是會
    
出現MS-DOS視窗嗎?這個問題的解決方法是用javaw取代java,這樣就不

會出現一個MS-DOS視窗了。


    這樣子應該可以解決用Java寫Windows的Service這個問題了。
    

    如果要了解如何利用Visual J++開發Service,在Win32 FAQ中

有以下的敘述:
    
There is some sample code in the Win32 SDK, and the Microsoft Java SDK   
includes the information and samples to build a Java service.                


    如果做了實驗,而且也願意,希望您能您實驗的結果告訴我們:)

    
--
他安息了。儘管命運多舛,他仍偷生。
失去了他的天使他就喪生;
事情是自然而然地發生,就如同夜幕降臨,白日西沉。

--
* Origin: 中山大學 West BBS-西子灣站 * From: 140.117.35.37 [已通過認證]


←回列表  ↑上一篇  ↓下一篇        張貼  回應