2007/08/20

jps - Java Virtual Machine Process Status Tool

 

 

 

無意間在 jini(99% jakarta)雅加達爪哇咖啡台灣總店 發現一個好用的 java tool,jps。
jps 是 jdk 5.0 之後提供的一個工具,

可以透過此工具取得目前系統上執行的 java 程式之系統訊息。

相關的 java 官方說明如連結:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html 

 


很多 java 程式需要知道自己是不是系統上唯一執行的程式,

大部分的解決方法是透過 bind 一個 socket port 來確保程式是唯一的,

但是若需要同時指定不同的設定檔執行好幾次同一支程式時,

單純用 socket port 來做識別,似乎就有其困難之處,且很多系統上,是不太允許程式隨便佔用 port 的。

 

透過 jps 搭配不同的參數,可以得知目前系統上 java 程式的細節,

例如 process id、程式 main class 的完整名稱(-l)、執行程式的參數(-m)、VM 的參數等等(-v),

 使用 -l 參數,可知道是否已經有相同的程式於系統中執行,

搭配 -m 參數,可知道是否有相同的程式使用了哪些參數在系統中執行,

使用 -v 參數,可以知道執行程式時的 vm 參數,例如 classpath、程式執行的路徑、以及記憶體的調適等。

 

若要用程式來處理的話,則如 jini(99% jakarta)雅加達爪哇咖啡台灣總店 所提到的,

使用 runtime.exec 來執行 jps,並取得其結果再做進一步分析,範例如下:





import java.io.*;

 

public class JPS_Test {
    public static void main(String[] args) {
        try {
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec("jps.exe -l -m -v");
            InputStream is = process.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}




 

或是直接參考 Jps 的做法去取得資訊,

( Sun 已經公開 jdk 的 source 了,下載後,路徑是 \j2se\src\share\classes\sun\tools\jps\Jps.java )

不過這種做法就像使用特定 JCE Provider 去處理 Certificate 一樣,

要使用到 sun.xxx 的 package,而非 java 標準之 package,是沒有文件和官方支援的哦。

 

2007/08/04

先生,你要的酸辣湯在湯餃裡有。

 

 

 

有次跟朋友一起吃用餐,

我點了喝碗酸辣湯,朋友點了一份湯餃。

老闆說,先生,你要的酸辣湯在湯餃裡有,

吃那份湯餃就能喝到酸辣湯,實在看不出單點酸辣湯的用意何在,

所以老闆就把酸辣湯從菜單上劃掉了。

 

啥?!這是什麼狀況!

慶幸的是,這種事情在現實生活中肯定不會發生,

否則不是麵店很快倒掉,就是湯餃以後可能要以 license 數量(來客數)來計費了。

 

但是偏偏這種事情,就發生在最近的一個專案上,

開了需求要A, B 兩個功能,還給了一份規格書。

原本以為連規格都開好,應該很快就能夠確認相關的細節了,

結果拖了一週,廠商居然回信說,因為B的功能包含在A裡面,所以就不提供B的功能了。

A, B兩個功能的I/O根本就不同,使用的時機也不同,

在沒有經過確認之前,就這樣逕自拔掉別人的需求,

完全沒有辦法理解那個廠商到底在想什麼,真的是令人提笑皆非......

 

2007/05/23

工作穩定?








最近常有人問我在現在公司待幾年了?
答案是,到今年8/25滿5年(嗯...包含留停的半年...)


大部分的人都蠻驚訝可以在一家公司待那麼久,
但其實工作上比較有接觸的同事,似乎都待的比我久,哈。


工作穩定嗎?薪資滿意嗎?
其實也不盡然。


同事間相處的氣氛也還不錯,

雖然不像前一家公司的同事那樣像朋友般熱絡,

但至少都能互相尊重、互相幫忙、教學相長。


也可能是專案性質的原因吧,
都是規模小、時程短的專案,
替公司賺了多少錢我是不知道,
但至少東西都做出來了,客戶也使用的很順利,
可以在很短的週期就會獲得工作完成的喜悅感和成就感,
我想這是持續工作的動力吧?!
壞處也不是沒有,
常常會有很多件事情卡在一起的時候,
常常會遇到要在短時間研究新技術,
常常會不知道做出來的東西是不是符合一般業界通用的方式,
常常會煩躁、會焦慮、會迷惘、會力不從心,
但,工作就是如此吧?!


至於薪水,
基於薪資保密原則,
我也不知道其他人拿多少,
跟好友們動輒百萬的年薪相比,
那真的是少的可憐,
不過反正我沒家累、很少從事需要花錢的娛樂,
扣除每個月要給家裡的錢、固定的投資,
也還算不虞匱乏,
我還蠻喜歡小布(同學的同事)說的一句話:
我心靈很富有!(代表物質上賺的不多,哈哈)


加上我很懶,又是風險規避者,
找新工作也是很累的一件事情......
就算找到了,一定會比現在好嗎?未知的風險......


所以一待就待了五年多,
沒有意外的話,還會繼續待吧?!
嗯,未來的事,很難說......



題外話,
最近有客戶想請我介紹同學去工作,
呃,各位同學們,你們有人是在寫程式的嗎?
聽說我好像是財管系畢業的......

2007/03/21

工作


只要在這邊看到屬於"工作"類別的,

好像十之八九都是抱怨文,

其實我也不是真的在埋怨什麼,

人生嘛,不如意事,十常八九,我自認看的很開,

會寫下來,其實有點當笑話看的成分在,

很多事情無力改變,只好自娛娛人一番。

2007/03/15

公司喬遷

 

 

 

3/13
沒有臨時識別證偷偷潛入
新大樓新辦公室
還在施工的凌亂與噪音
空氣中瀰漫著略為刺鼻的裝潢味道
頗不穩定的無線網路
鬧脾氣的電腦
沒有著落的門禁卡

 

下班

逢紅綠燈必被擋下來的光復南路
重複播放了兩遍小情歌的基隆路口紅燈
比往常多二十分鐘的回家車程

 








 

3/14
依然偷偷潛入新大樓
總算在下午拿到臨時的門禁卡
依然令人暈眩的氣味


想逃

2007/01/23

工作二三事

 

 

 

1. XX人

公司 webportal 裡有個 XX人 的連結(XX是公司名稱),
裡面放的是所有員工的照片及部門、分機資料,
據說,
我已經不在上面很久了......
這樣是不是代表我可以不用去上班了?
(薪水還是要記得匯給我)

 

2. 組織異動
大概2/3的人被歸類在 resource pool 裡,
名義上有個主管負責工時、假單的審查及打考績,
實際上工作則是跟著 project leader 走,
也就是說,到下次組織異動前,
走在路上,主管和我可能都不認識彼此。(聽說他要打我的考績?)
什麼?XX人有照片?
承1.,我不是貴部門(公司)的人 XD

 

3. 員工電腦租賃
公司為了節省員工電腦需定期汰換的成本,
改採員工電腦租賃的方式,
也就是說,
公司不再替員工添購電腦設備了,
而是自己去買,然後公司再跟員工租,
自己買的東西,誰會買一台 desktop 放在公司?
當然是買 notebook 可以帶來帶去囉!

 

4. VPN 的改變
公司的 VPN 現在改用 domain 的帳號密碼就能登入了,
所以不需要像以前再額外請主管協助申請 VPN 的權限,
只要裝了軟體,匯入公司提供的設定,
到處都能連到公司。

 

5. 搬遷
聽說公司3月要搬家,
屆時會改採 mobile office 的方式,
也就是說,不會有固定座位,
也不會一人配一個位置,
先到先搶。
(呃...應該沒人會搶...)

 

6. 3G 網卡
搭配 HiNet 2M/256K ADSL 買了一張 3G 網卡,
月付 NT$850,只要手機能通的地方就能上網。
聽說現在已經有 3.5G 網卡了,網路傳輸速度更快,
向下相容 3G,不過目前基地台涵蓋範圍還不大,
但超過 3.5G 基地台範圍則使用 3G 的頻寬,
還是月付 NT$850,但是網卡要 NT$5990。

 

7. Work anywhere
歸納2. 3. 4. 5. 6.
我可以申請不到公司工作嗎?

2007/01/11

Study List

 

 

 

以下是我到月底需要看的東西,能了解多少?答案是個問號......反正,盡力而為......

 

maven

spring framework

hibernate

xfire

acegi security

 

又要開始唸書了......我最不擅長的事情 ˊˋ