2013年6月30日 星期日

勞工退休2筆錢:勞保老年給付+勞退金

http://udn.com/NEWS/NATIONAL/NAT3/7997166.shtml


【聯合報╱記者許俊偉/台北報導】 2013.06.30 03:22 am 

五萬多人沒來領新制勞退金,逼得勞保局化被動為主動,急著提醒退休勞工快來領,其中有不少人以為領過的「勞保」就是退休金,壓根兒不知原來還有一筆勞退金。勞保局說,勞保是社會保險,領到的是「老年給付」,但「勞退金」是雇主給的錢,退休時照理會有兩筆「棺材本」。

勞保局說,勞工不管是勞退舊制還是新制,雇主依法要幫勞工投保勞保,退休時符合資格就能領到一筆勞保老年給付。但過去勞退新制未上路前,舊制勞工不見得都能在同一工作單位做到退休,久而久之,很多人都把在勞保領到的這筆錢誤以為就是「退休金」。

勞保局說,退休時除了有勞保老年給付,還有另一筆雇主給的勞退金。民眾若選擇勞退舊制,必須在同公司工作服務滿退休資格,才能領到最多四十五個月的退休 金,做不滿就離職,這筆錢就沒了;要是選擇新制,不管是否在同一公司工作,雇主每個月都會固定提撥百分之六薪資的勞退金進勞工個人帳戶,退休時都領得到這 筆退休金。

此外,也有已領過舊制退休金的勞工,二○○五年後又繼續在職場工作,不知道還可繼續領取新制退休金,才會二度退休後至今沒來領。

也有人是當年制度轉換時,選擇新制但保有舊制年資;退休時,雇主給了一筆舊制退休金後,不清楚自己其實還有新制上路後雇主固定提撥的新制退休金。

勞保局分析,退休勞工未領新制勞退金的狀況不盡相同,甚至有人認為自己新制年資沒幾年、累積的退休金不多,不急著領或根本懶得領;當然,忘了領的也大有人在。

看懂你的退休帳戶,小心雇主高薪低報

http://udn.com/NEWS/NATIONAL/NAT3/7997167.shtml

不只五萬多名退休勞工沒來領新制退休金,不少在職勞工對自己的個人退休帳戶也不太關心,或是「霧煞煞」,以致被不肖雇主「高薪低報」也渾然未察,等到發現時,還得大費周章向雇主提告求償。

根據統計,司法機關過去三年有關勞退新制提繳的訴訟,就有兩百八十一件,總追討金額約兩千三百多萬元。

勞保局說,退休金是雇主和勞工間的權利義務,雇主若提撥短少,勞保局查證屬實後雖可對雇主開罰,但勞退金短少部分須由勞工向雇主求償;建議新制勞工最好養成緊釘帳戶提撥情況的習慣,尤其在薪水調整和剛轉換公司後。

該如何得知雇主究竟是否依法每月提撥薪資百分之六的退休金?勞工可以核對每月薪資單上的提繳數字是否正確;若未核實提繳,可向各地勞工主管機關申訴。例如薪水四萬六千元,勞退提繳級距落在「四萬八千兩百元」,乘以百分之六後,每月勞退金應有兩千八百九十二元。

勞保局還說,彙集勞工個人帳戶金額的勞退新制基金,會由勞退基金監理會負責投資,勞保局每年會將上一年的投資收益分配到勞工個人帳戶中,就算虧損也有保證收益制度(銀行兩年期定存利率),勞工帳戶餘額會比原本雇主提撥的總數還要高。


●怎麼查帳戶?

新制勞工可以透過自然人憑證到勞保局網站查詢帳戶餘額有多少;也可向土地、玉山、台北富邦、台新和第一銀行等五家勞保局委託銀行申辦勞動保障卡,再持卡透過自動櫃員機(ATM)查詢近六筆提繳明細和餘額。

此外,民眾手中若有郵局金融卡,也可向郵局申請開通查詢勞退資料的服務,同樣可利用郵局ATM「隨插隨查」;或是至勞保局辦事處臨櫃查詢。

苦命3% 電子業進入微利時代

source => http://udn.com/NEWS/FINANCE/FIN3/7996046.shtml

近十年來扮演國內產業火車頭的電子業光景不再!根據行政院主計總處統計調查發現,資訊電子產業利潤率5年來下降超過5個百分點,利潤率從5年前接近8%,已跌至剩下不到3%,這也是官方統計資料首度證實電子資訊產業的微利時代來臨。

電子業總喜歡用「毛3到4」自嘲毛利很低,經營環境艱困,這在主計總處今年公布的100年工商及服務業普查資料可以得到印證。據主計總處統計顯示,100 年底工商及服務業利潤率為6.35%,5年間下降0.88個百分點,其中工業部門利潤率4.83%,比95年降3.04個百分點。
工業部門中的製造業利潤率只有4.77%,5年來下降3.25個百分點,主要原因是資訊電子工業利潤率僅2.73%,和95年的7.89%相較,5年間資 訊電子產業利率減少5.16個百分點,衰退幅度居工業部門之冠,顯示資訊電子工業微利化明顯,主計總處官員甚至以「跌得很慘」,來形容目前資訊電子產業的 景況。

元大寶華綜合經濟研究院院長梁國源表示,當工業及製造業利潤率均下跌超過3個百分點,下跌幅度確實不小,顯示微利趨勢已經確定形成。

富邦金控經濟研究中心資深協理羅瑋表示,產業利潤率下降和全球化脫離不了關係,2000年以後中國大陸加入世界貿易組織WTO,印度市場也對外開放,大量廉價的勞動力和商品進入全球市場,為了競爭必須削價,必然導致我國製造業利潤下滑。

2013年6月24日 星期一

中國大陸在台銀行清單

 ● 中國銀行台北分行


 ● 交通銀行台北分行


 ● 中國建設銀行台北分行

    地址:11047台北市信義區信義路五段106號信義經貿大樓2樓A3室
    電話:02 - 87292008

.

Linux 麥克風設定 及 音量調校

*******************************************************
麥克風音量調校
*************************
說明:以下的方式,若切換使用者,或重新開機會失效,現今仍在研究如何開始就
    能生效的方法。

1、在Terminal 中打入 alsamixer
2、點選 F6,選擇音效卡 (見圖一)
3、點選 F5 開始設定(見圖二)
4、設定 (見圖三、圖四)
    項目        值   說明
 --------- --- ----------------------------
 Master        71 在另一個音量控制台看到的值變成 68 ,二者都是指向同一值。
 Headphone      92 要按下「M」鍵,不然沒聲音
 PCM          免設 使用系統預設值 (97)
 Front         92 要按下「M」鍵,不然沒聲音
 Front Mic      100 要按下「M」鍵,不然沒聲音
 Front Mic Boost   100 
 Surround       92 要按下「M」鍵,不然沒聲音
 Center         92 要按下「M」鍵,不然沒聲音
 LFE           92 要按下「M」鍵,不然沒聲音
 Side           92 要按下「M」鍵,不然沒聲音
 Capture       100 
 Capture 1      免設 使用系統預設值。值愈低雜訊愈少
 Capture 2      免設 使用系統預設值。值愈低雜訊愈少 
 Auto-Mute Mode   須設    設定為「Enabled」 (預設值也是Enabled)
 Input Source    預設值 使用系統預設值 (預設值是Front Mic)
 Input Source 1   預設值 使用系統預設值 (預設值為 Rear Mic」)
 Input Source 2   預設值 使用系統預設值 (預設值為 Rear Mic」)
 Rear Mic      100  要按下「M」鍵,不然沒聲音
 Rear Mic Boost   53   值愈低雜訊愈少,值愈高雜訊也愈高,但收訊愈敏感


5、本項設定之系統環境
 OS:x86_64
 kernel:2.6.32-358.11.1.el6.x86_64


圖一:



圖二:



圖三:



圖四:






*******************************************************
麥克風驅動程式設定
*************************
1、以 root 身份檢查是否存在 snd-pcm-oss and snd-mixer-oss
  (註:經查看 /etc/modprobe.d/dist-oss.conf 文件,似乎 oss 已被停用
     因為這架構會干擾現前支援的PulseAudio音效程式,見註二)

    [root@localhost downloads]# lsmod | grep snd
        snd_hda_codec_hdmi    26157  1
        snd_hda_codec_realtek   68136  1
        snd_hda_intel        27823  3
        snd_hda_codec 121518 3 snd_hda_codecˍhdmi,snd_hda_codec_realtek,snd_hda_intel
        snd_hwdep         6652  1 snd_hda_codec
        snd_seq          55759  0
        snd_seq_device      6500  1 snd_seq
        snd_pcm          86635  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
        snd_timer         22411  2 snd_seq,snd_pcm
        snd  69907  14 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_seq,snd_seq_device,snd_pcm,snd_timer
        soundcore         7958  1 snd
        snd_page_alloc       8470  2 snd_hda_intel,snd_pcm


2、若不存在,則執行加入動作

    [root@localhost downloads]# modprobe snd-pcm-oss
    [root@localhost downloads]# modprobe snd-mixer-oss


註一:參考資料

    ‧http://blog.yam.com/w0308/article/8041973


註二: source from =>  /etc/modprobe.d/dist-oss.conf

# OSS Sound Support
# This has been disabled in F11 onwards because it can interfere with the
# PulseAudio sound service (a legacy OSS application can prevent PulseAudio
# applications from playing sound by preventing PulseAudio from (re-)opening
# the sound device). To re-enable support, uncomment the following line:
#
# install snd-pcm /sbin/modprobe --ignore-install snd-pcm && /sbin/modprobe snd-pcm-oss && /sbin/modprobe snd-seq-device && /sbin/modprobe snd-seq-oss


2013年6月14日 星期五

all - 程式設計各類資源清單

編輯

 ‧2013/06/02 java,c/c++ Web Developer Resources

 ‧2010/07/06 程式設計語言相關各類資源
   - Computer Science / Learning
   - Assembly
   - C/C++
   - Java (含 Android)
   - Others 


.

2013年6月12日 星期三

手機、平板電池正確充放之使用方式

來源:http://www.ptt.cc/man/MobileComm/D4B4/M.1347685706.A.E81.html

------------------------------------------------------------------------
作者: priv (邪惡松鼠) 看板: MobileComm
標題: [心得] 關於手機的電池 - 原理和觀念
時間: Thu Jan 12 17:03:23 2012
------------------------------------------------------------------------

太多人問了,覺得有必要寫一篇專文。


同步發表於blog上:http://priv.tw/blog/archives/545


本來想寫短一點,結果變得很長,有興趣再看吧。


對手機來說,電池一直都是一個重要的配件。
到了智慧型手機時代,手機耗電大幅提升,電池科技卻沒有跟上
如何善用電池及延長它的壽命,變成大家急欲尋求的解答。


有時候越是流行的東西,在網路上,反而會充斥太多似是而非的文章。
專業人士忙著賺錢,也懶得去和一般人解釋。


推文回答推久了會有點煩,所以雖然我不是EE背景
就讓我這個在手機廠打工的工程師班門弄斧一下吧。


一、原理:

太深的東西這邊就不提了,但是還是來輕描淡寫一下。


首先,在2012年的現在,基本上所有的手機所使用的都是鋰離子電池
其中絕大多數使用鋰聚合物。(一般我們說鋰電其實並不精確
因為嚴格來說鋰電是指一次性的鋰電池,不過…就算了吧)


其原理,簡而言之,就是靠鋰離子在正負極之間的移動來工作。
放電時,鋰離子離開負極,進入正極,產生電流。
充電時,由於我們外流加上的電池,強制鋰離子反向移動
從正極移到負極,還原成可以再度放電的狀態。


二、電壓:

和一般人直觀的想法可能稍有不同,和插頭或電源供應器不一樣
基本上只要是電池,其電壓並不會是固定的,它必定隨著不斷放電
而造成從最高電壓慢慢的降低,直到無法再提供足夠的電壓和電流。


手機用的鋰離子電池,其工作範定義為3.2V~4.2V。
基本上不管電池上標示3.7V,3.8V,4.2V
實際上手機電池在電壓上並沒有什麼區別。
下次看到同廠牌,標示不同電壓的手機電池(ex. EVO 3D & Sensation)
只要容量相差不遠,接頭相同,事實上應該都是可交換的。


如果標示4.2V,意味是標準鋰離子電池的最高電壓。
如果標示3.7V或3.8V,則代表它標示的是所謂的名義(Nominal)電壓。
大多數充電電池標示的電壓都是所謂名義電壓
例如說AA鎳氫電池的1.2,汽車鉛酸電池的12V,還有鋰離子電池的3.7V。
這個名義電壓主要的用途是用來計算電力的。


對於放電曲線是接近線性的充電電池來說,這是它的中點電壓。


3.7V剛好是3.2V和4.2V的中點。
所以同理,AA鎳氫工作電壓約為1.0V-1.4V,汽車鉛酸電池約為10V-14V。


鋰離子電池是絕對禁止過充和過放的
一旦充電超過4.2V,會使得電池產生不可逆的結晶體,減少其壽命和電量。
其狀況嚴重者,也就是平常看到電池漲大的狀況。
此時,最好是停止使用此顆電池,因為結晶若刺穿電池的薄膜
會有短路、燒毀、甚至爆炸的危險性存在。


而放電到低於3.0V的時候,同樣會對電池造成不可恢復的損害
大幅降低電池的可用電量及壽命。


三、電量:

電池的電量大多是以mAh或Wh來標示的。
顧名思義就是mA(毫安培)xh(小時)或Watt(瓦特)xh(小時)。


這個容量怎麼計算的呢?其實就是電流和時間的積分。
如果一顆鋰離子電池,以50mA放電可以使用30個小時
那麼這個電池的電量為50mA x 30h = 1500mAh
換算成Wh就是1.5Ah*3.7V(Nominal Votage) = 5.55Wh。
(1A = 1000mA)


過去在feature phone的時代,多半以電池目前的電壓
加上放電曲線,來推估電池剩餘的百分比。
不過這有一個問題就是,因為電壓根據溫度還有目前充/放電的情形不同
上下跳動的程度非常大,所以也就非常地不準。


再者,電池有老化的問題,電量是會隨時間遞減的。
所以現代的手機會在電池上(ex. HTC)或手機上(ex. Sony Ericsson)
放置一顆Gauge IC(流量統計及充電控制IC)。
當你充電或放電時,這顆IC會統計流經的電流量,以便提供更精確穩定的電量數據。


四、壽命:

通常以充放次數(cycle)來計算。


一般而言,如果一顆電池宣稱它有500次充放的壽命
代表它經過500個"cycle"之後,還能儲存到原本一半以上的電量。


所謂的cycle,並不是說你拿去充電一次就算一次,而是以完全充放一次來計算。
以手機為例,就是從4.2V,用到3.2V,然後再充到4.2V,這樣算是一次(1 cycle)。


也就是說,如果你今天用到50%,再拿回去充到100%
只進行了一半的循環,那這樣並不算一次,而只是0.5個cycle。


鋰離子電池電敢號稱自己無記憶效應,只要不要過充和過放
長充長放和短充短放,對壽命的影響差異甚微。


五、充電:

有別於鉛酸及鎳氫都會提高至16V/1.6V,超過其工作電壓的高壓來提高充電速度
由於鋰離子電池是不可過充的,所以一般都是固定用4.2V去供電。


至於充電的來源,現在主流都是USB充電,所以可以用電腦的USB搭配傳輸線
或用AC(插座)轉USB的旅充來充電。
外部的5V直流,經過充電電路降壓至4.2V後,再對電池充電。


很多人搞不懂充電電流的意義,基本上充電電流要分成三個部份來看。


    1. 來源的電流:如果用電腦USB充電,其電流限制為500mA,這是USB的規範。
                   如果是AC轉5V,通常看到的種類有500mA, 1000mA, 2000mA三種。


    2. 充電電路的限流:傳統上鋰離子安全的充電電流為1C。
                   也就是說,如果1500mAh的電池,安全充電電流上限為1.5A。
                   因此,不能有多少就吃多少,必須在供電電路上限流。
                   以小型的feature phone,電池約在700-900mAh,通常限流為500mA。
                   目前主流的smart phone,其容量為1200mAh至1900mAh
                   廠商一般將手機端限流定在1A。

                   而平板電腦,例如說iPad等,其電池至少為3000~4000mAh起跳
                   所以一般限流為2A。


    3. 壓差:固定4.2V的充電方式,自然而然產生了「先快後慢」的充電效果。
             充電端加上4.2V,0%時4.2V和3.2V壓差很大,電流自然就可以很大。
             等充了到一定成數之後,電壓差越來越少,電流自然就會往下慢慢掉。
             最後等到電壓電壓達到4.2V,無電位差的情形自然充電電流就成為0
             電池也就充飽了。


六、充電器和充電線的選擇:

因為這是比較大的問題,所以特地獨立一段出來。


一言以蔽之,就是要選擇品質穩定、電流充足的充電器。
由於前段所述,充電電路會有限制的關係
所以使用規格超過原廠電流的充電器是沒有關係的。


就算拿平板電腦用的旅充來充手機,手機充其量也只會用1A的速度來充電。
而且事實上,由於平板電腦用的旅充工作電流更大,如果不計較插頭大小
它的電流電壓穩定度、以及效率還可能會比一般手機用的旅充插頭要好。

(當然,如果手機不幸短路、故障燒掉,限流1A還是會比2A燒得慢一點
不過一旦燒掉可能就沒什麼差了。)


一般來說,原廠旅充和原廠線是不會有什麼問題的。
如果有必要選擇副廠(不同地方使用或車用)廠品,務必要小心選擇。
不符標示的旅充車充,在市面上非常多。貪小便宜的結果,往往是用得很不開心。


USB線也是一般人容易忽略的地方,由於USB主要的功能是傳輸資訊
事實上很多的USB線,其5V的銅線粗細,並不足以承受1A甚至2A的電流。
電阻過大造成充電電流不足事小,如果發熱燒毀造成危險,就絕對是因小失大了!


如何確定電流充足呢?除了觀看電流的程式來監控以外
由前幾段,你應該對電量和充電有一定的概念。


以1500mAh的電池,1A充電,再考慮超過80%~90%時充電速度變慢的情形
大約二個小時左右充飽,是合理的情形,代表電流正常。
若充到三小時、甚至四五小時以上,那就很明顯有問題了。


當然,如如果邊充邊用,由於CPU/RAM/螢幕等分走了電流
那自然充電速度就會大幅減少。以現在的手機而言,如果來源只有500mA
你同時使用導航,或玩遊戲,那恐怕會充不太進去
甚至還可能會有越充電越少的情形。


一般來說,除非不得已,是不太建議邊充邊用的,一般來說
一邊大電流充電,一邊重度使用(例如玩3D遊戲,導航)
會造成手機急速發熱,影響手機和電池的壽命是其一
很多手機電池超過40~45度時,會自動停止充電來保護電池!

(補充:在不會發熱的情形下稍微輕度使用是無妨,只是這段時間會充得比較慢)


特別要注意的一點!!:手機和平板,為了怕從來源,如電腦抽取過量的電流,所以必須是它能辨識的充電器才會開放1A甚至2A的供電。否則,一般都是固定在500mA最安全的電流量。


通常的作法是將USB的D+D-短路(HTC),或加上一定的阻抗使其在特殊的電壓值(Apple)。
故除了選擇品質穩定,電流充足的充電器以外
務必注意手機是否能正確辨識此充電器


否則可能會空有1A或2A的標示規格,你卻只用得到500mA。


還有一個可能大家都有經驗的東西,就是有時候插上插頭
手機的螢幕就變得很難操作。這是因為電容觸控螢幕對微小的電流雜訊非常敏感
但因為你的旅充供應的電流雜訊過大,就會造成觸控的反應整個亂掉。
基本上是不需要擔心因為這個問題影響手機的壽命,但是的確很討厭。


解決之道還是使用穩定的充電器,不過有些手機若設計不良
電源的電磁幅射隔離不佳,也有可能連原廠充電器也會發生這樣的問題
只是程度差別,那就沒辦法了。

2013年6月2日 星期日

資源清單 - Java, C/C++ web developer resources

來源: http://www.ivmaisoft.com/jcgo/links.htm#java-benchmark

JCGO: Java, C/C++ web developer resources

A comprehensive collection of links useful for Java and C/C++ developers. Focused on the Java VM implementations and Java compilers. Maintained by Ivan Maidanski, the developer of JCGO...
The following web resource links may be of interest for JCGO users - and hopefully useful for you.

C/C++ compiler suites


C/C++ standard "LibC" library implementations

  • Diet Libc (a libc optimized for small size)
  • NewLib (a C library intended for use on embedded systems)
  • uClibc (a C library for embedded Linux)
  • musl libc (a C/POSIX library and extensions for next generation of Linux-based devices)
  • Bionic libc (derivation of BSD standard C library code developed by Google for Android)
  • EGLIBC (a variant of GNU C Library designed to work well on embedded systems)

C/C++ stand-alone well-known libraries

  • fdlibm (LibM implementation)
  • Linuxthreads (POSIX 1003.1c kernel threads for Linux)
  • GNU Pth (The GNU Portable POSIX/ANSI-C Threads)
  • BoehmGC/BDWGC (Boehm-Demers-Weiser Conservative Garbage Collector) [development Git repo]
  • libatomic_ops (atomic memory operations library, part of BDWGC) [development Git repo]
  • Concurrency Kit (C library containing a plethora of concurrency primitives and lock-less data structures)
  • OpenPA (portable library providing a consistent C API for performing atomic operations)
  • zlib (general purpose data compression library)
  • libiconv (charset conversion library)
  • unixODBC (Open Source ODBC sub-system)
  • SQLite (self-contained serverless zero-configuration transactional SQL database engine library)
  • Watt-32 tcp/ip (Waterloo TCP/IP C library)
  • XULRunner (a Mozilla runtime package for bootstrapping XUL+XPCOM applications)
  • libffi (a portable Foreign Function Interface library)
  • FluidSynth (a real-time software synthesizer based on the SoundFont)

Small C libraries partially implementing standard API

  • TinyGC (Tiny Garbage Collector - compact implementation of Boehm GC API subset)
  • T-PThread (Tiny portable "pthread" implementation) - part of JCGO

C/C++ stand-alone graphics libraries

  • GLib/GTK+ (graphics low-level library)
  • EFL (collection of libraries that make up the foundation of DR17 window manager)
  • cairo (Multi-platform 2D graphics library)
  • LibPNG (PNG graphic format library)
  • Pango (graphics layout and text rendering library)
  • FreeType (font handling library)
  • fontconfig (font config and look up library)
  • Qt/QML (cross-platform C++ application framework)
  • DirectFB (graphics library for embedded systems)
  • Nano-X/Microwindows (compact GUI back-end library)
  • wxWidgets (cross-platform GUI library)
  • Xynth (a portable embedded windowing system, client/server display interface)
  • directx (DirectX "minimalist" headers and source)

Native executable packers and protectors

  • UPX (Universal Executable Packer)
  • ASPack (Win32 executable file compressor)
  • PC Guard (Software copy protection and licensing system)
  • IntelliProtector (Software protection service)
  • PECompact (an advanced Windows executable compressor)
  • BoxedApp Packer (utility for converting full-fledged applications to single executable)
  • MoleBox (Software Virtualization and Protection Tools)
  • DLL to Lib (a converter of a DLL file into equivalent static library)
  • Ermine (a tool that allows software to be deployed in a single executable file)
  • ELF Statifier (tool for creating from dynamically linked executables and all it's libraries one ELF file)

Archive (de)compression utilities

  • 7-Zip (7z/Zip/Tar+Gz/Tar+Bz2 archiver and multi-format unpacker for Windows)
  • WinRAR (Rar/Zip archiver and multi-format unpacker for Windows)
  • WinRK (a commercial file archiver with an ultra-high compression ratio)
  • paq8px (a file compressor with an ultra-high ratio)

DOS extenders, drivers and DOS clones

  • HX DOS extender (Win32 emulator for MS-DOS)
  • DOSLFN (driver for Long File Names in MS-DOS)
  • dosppp (PPPD for MS-DOS)
  • FreeDOS (free MS-DOS compatible OS)
  • RxDOS (fast MS-DOS real-time clone)
  • RTOS-32 (Win32 API Compatible Embedded Real-time OS)
  • Wine HQ (a program loader running Windows applications on Linux/POSIX)

Java VM with complete SDK suites


Stand-alone Java VM implementation

  • Aegis VM (Java VM implementation)
  • BeKaffe (Kaffe Java VM for BeOS)
  • cacaovm (Java VM with JIT compiler)
  • IKVM.NET (Java VM for .NET)
  • M-JVM (a KVM written in Java)
  • J-Smile VM (Java VM with GUI support)
  • JAmiga (Java VM for Amiga)
  • JamVM (Java VM implementation)
  • Jato VM (JIT-only Java virtual machine that aims to support JVM specification version 2)
  • JaOS (Java VM implementation)
  • Jelatine (Java ME/CLD VM implementation)
  • Jikes RVM (Research Virtual Machine)
  • joeq (Java VM written in Java)
  • Kaffe VM (Java VM with JIT compiler)
  • Kissme (Java VM implementation)
  • leJOS (Java system for Lego Mindstorms RCX)
  • TinyVM (replacement firmware and VM for Lego Mindstorms RCX)
  • MysaifuVM (Java VM for Windows Mobile)
  • CrEme (a J2ME/CDC Java VM technology for Embedded platforms)
  • phoneME (a J2ME open-source implementation for mobile handsets)
  • IBM J9 WEME ppro10 (Java VM for PocketPC and Windows Mobile on ARM)
  • NanoVM (a portable tiny Java VM running on microcontrollers with at least 8k code space, especially Atmel AVR)
  • simpleRTJ (a small footprint Java VM for embedded and consumer devices)
  • JControl (an extremely small and compact embedded Java solution, optimized for systems with low processing power)
  • JamaicaVM (a virtual machine and build environment for running realtime Java programs)
  • Squawk (an open source virtual machine for the Java written in Java)
  • OJI (Open Java VM Integration for Mozilla browsers)
  • ORP (Java VM Open Runtime Platform)
  • Aonix PERC (Real-time Java VM implementation)
  • ajile JME (a silicon-based real-time J2ME platform)
  • SableVM (Java VM implementation)
  • shuJIT (Java Just-in-Time Compiler for x86 processors)
  • teaseme (Linux-kernel Java VM)
  • Waba for DOS (Waba VM for MS-DOS with TCP/IP)
  • WabaVM (Waba VM and SDK for embedded devices)
  • Wonka (Java VM implementation)
  • EVE (Eve Virtual Machine and SDK for mobile and desktop PC)
  • Maxine VM (a meta-circular research VM)
  • Jaune (an ahead of time compiler for small systems)
  • VMKit (a framework based on LLVM for building virtual machines)
  • IcedRobot (The GNUlization of Android - an attempt to bring the Android API on Linux Desktop)

Java to native code "through C" static compilers

  • JCGO (Java source to C code translator) [development Git repo]
  • JC (Java class into C source translator)
  • Toba (Java code to C code translator)
  • I3J2C (Java to C "intentional" compiler)
  • j2c (J2C converts Java source into compilable C++ code)
  • MCU Java Source (Java source to C source translator targeting MCU firmware)
  • Java2C (a translator from Java to C language for embedded and realtime applications)
  • Ptolemy II Java-to-C (a Java to C compiler based on Ptolemy 2 framework)
  • alcheMo (automated system to port a J2ME application to BREW, Windows Mobile and iPhone)
  • J2ME Polish Janus (A toolset for porting J2ME/MIDP applications to different handsets - Windows Mobile, iPhone, Android)
  • j2me-brew (porting framework that makes porting of J2ME applications to BREW C++ platform easy)
  • Java2CPP (Compilers Project, compiles Java code to C++)
  • Java 2 CSharp (an automatic translator of Eclipse Java projects into Visual Studio ones)
  • Qs Moka (a Java source to TIGCC project converter)
  • Java2C++ (a translator from Java to C++)
  • Janus (Java to C++ source code converter without GC and threads support)
  • LLVM-DVK (Dalvik-to-native code translator using LLVM optimization framework)
  • J2ObjC (A Java to iOS Objective-C translation tool and runtime)

Direct Java to native code static compilers

  • GNU GCJ (a portable optimizing ahead-of-time compiler for Java - GCC front-end)
  • micro-libgcj (a lightweight version of the GCJ runtime and micro-SWT libraries)
  • Excelsior JET (Java to native executable converter)
  • JNC (Java to native executable converter)
  • Manta (Java to native code compiler)
  • Vortex (Java to native code compiler)
  • Timber (static whole-program compiler for Spar/Java)
  • JFE (a Front End for the Java Language by Edison Design Group allowing native execution of Java code without JVM)

Java-based PC Operating Systems

  • JNode (Java OS written in Java)
  • JOS (Java Operating System)
  • JJOS (Java VM based on jJOS/decaf)
  • JX OS (flexible Java OS)
  • Sanos (Minimal OS kernel for Java HotSpot VM)
  • Odiseo Desktop (Java multitasking environment)

C code to Java translators

  • AMPC (C to Java class files translator)
  • Novosoft C2J (C-code sources into Java classes translator)
  • c2java (the preprocessed C code to Java converter)
  • Mips2Java (C to Java source translator through MIPS GCC)
  • NestedVM (a tool providing MIPS binary translation for Java bytecode)
  • Cibyl (a binary translator that allows compiled C programs to execute on J2ME phones)

Multi-language translator suites

  • Octopus (syntax translator between Java, C#, VB.NET, C++)
  • XES (an XML-based source converter between Java and C++/C#)
  • Tangible Instant (Accurate Source Code Converters between VB, C#, C++, Java)
  • xmlvm (Java/.NET/Ruby compiler into Java/.NET/JavaScript/Python/Objective-C/C++)

Java-to-exe wrappers


Java class decompilers

  • Jad (Java Decompiler)
  • JadRetro (a Java decompiler helper supporting Java 1.5+ classes) [Maven artifact details]
  • JadClipse (a plug-in integrating Jad with Eclipse IDE)
  • IdeaJad (IntelliJ IDEA plugin for java class decompilation using Jad)
  • JadAlign (source aligner/reformatter for java files decompiled by Jad)
  • Jad mode for Emacs (Emacs integration with Jad)
  • JD-GUI (Yet another fast Java decompiler)
  • Procyon Java Decompiler (Open-source Java decompiler supporting Java 8)
  • JODE (Java Optimize and Decompile Environment)
  • CupOfJoe (a Java Decompiler supporting Java 5, disassembler and bytecode debugger)
  • javad (Java decompiler written in C++ aimed to decompile JDK v1.6 class files)
  • JDec (Java Decompiler)
  • "dcompiler" (JADO - Java Decompiler and Obfuscator)
  • debyte (a Java Decompiler)
  • JReversePro (Java Decompiler)
  • HBD (The HomeBrew Decompiler)
  • Sothink Java Decompiler (SourceTech Java decompiler)
  • Dava (Java Decompiler)
  • Java Clazz Utils (Java class files manipulation utility which includes Java classes viewer and decompiler)
  • Dedexer (a disassembler tool for Android DEX files)
  • dex2jar (Decompiler tools to work with Android .dex and java .class files)

Java class cross-version converters

  • Retroweaver (Java 1.5 to Java 1.4 class converter)
  • JadRetro (Java 1.5+ to Java 1.4 class converter targeting class decompilation)

Java source and code checkers


Stand-alone Java source to byte code compilers

  • Jikes (IBM Java byte-code compiler)
  • KJC (Kopi Java Compiler)

Java assemblers

  • Jasmin (an assembler for the Java VM)

Java optimizers and obfuscators

  • ProGuard (Java class shrinker, optimizer, obfuscator)
  • jobfuscate (Duckware Java Class Obfuscator)
  • Zelix KlassMaster (Java byte-code optimizer and obfuscator)
  • yGuard (a free Java bytecode obfuscator and shrinker)
  • GuardIT for Java (an Interpreted Code Protection tool)
  • RetroGuard (a general-purpose Java obfuscator)
  • Allatori (a second-generation Java obfuscator)
  • DexGuard (specialized optimizer and obfuscator for Android)

Java properties converters

  • JPropJav (java properties to class source file converter) - part of JCGO

Java parser generators

  • JavaCC (Java Parser Generator)
  • Polyglot (Extensible Compiler Toolkit)
  • Coco/R (a multi-language LL(I) scanner/parser generator)
  • JFlex (Fast Scanner Generator for Java)
  • ANTLR (ANother Tool for Language Recognition - Parser Generator)

Java code analysis libraries

  • Soot (Java Optimization Framework)
  • BCEL (Byte Code Engineering Library)
  • Java ASM (Java byte-code manipulation framework)
  • libjit (a language-independent Just-In-Time compilation functionality implementation)

Stand-alone Java Runtime Standard Environment class libraries


OpenJDK integration projects

  • IcedTea (a harness to build OpenJDK using Free Software build tools)
  • openjdk4jikesrvm (bridge to use OpenJDK as JikesRVM class library)
  • CVMI (the OpenJDK Common Virtual Machine Interface)

Java class libraries for real-time systems


C++ libraries implementing Java API

  • NaJA (Native C++ Java-like API)

Pure Java CPU emulators

  • JPC (x86 PC emulator written in Java)
  • JZX (Java Z80 "ZX Spectrum" emulator)

Java stand-alone communication and network libraries


Java GUI libraries

  • Eclipse SWT (The Standard Widget Toolkit for Java)
  • SWTSwing (a port of the SWT graphical toolkit to Swing)
  • SwingWT (Swing and AWT API over SWT library)
  • IBM J9 WEME ppro10 UI (a standalone AWT implementation over SWT library)
  • Java-GNOME (Java bindings for GNOME and GTK libraries)
  • Qt Jambi (Qt library for Java)
  • QtAWT (Qt-AWT Java bindings for KDE)
  • KDEJava/Koala (Qt Java wrapper for KDE)
  • Escher (X-Window System library written in Java)
  • JCNIX (X-Window AWT CNI back-end)
  • PJA (Pure Java AWT back-end)
  • sdljava (Java bindings for Simple Direct Media Layer)
  • XTC (X-Window protocol implementation in Java)
  • GNU win32peer (Win32 AWT back-end for Classpath)
  • CHARVA (Java AWT for Text Terminals)
  • TUI AWT (a Text User Interface for the Java AWT)
  • XP Look and Feel (alternative Swing XP-like "look-and-feel")
  • LWUIT (a UI library for Java ME applications)
  • LWUIMB (a port of LWUIT on top of the MicroBackend library)
  • WeirdX (a pure Java X Window System Server implementation)

Java stand-alone miscellaneous libraries

  • JNA (Java library for accessing native shared/dynamic-link libraries with neither JNI nor native code required)
  • xFunction (a commercial library for DLL/shared libraries code invocation directly from Java without any JNI programming)
  • HSQLDB (a pure Java Database)
  • SqliteJDBC (a Java JDBC driver for SQLite)
  • Bouncy Castle Crypto (a lightweight cryptography API)
  • iText (a library generating PDF files)
  • JOrbis (a pure Java Ogg Vorbis decoder)
  • MicroEmulator (a pure Java ME implementation in Java SE)

Java build-automation tools

  • Apache Ant (a Java-based build tool)
  • Apache Maven (a Java-based software project management and comprehension tool)

Java-based text editor tools

  • jEdit (a pure-Java mature programmer's text editor with plugins)

Java benchmarking

  • CaffeineMark (Embedded CaffeineMark Toolkit)
  • SciMark (Java Numeric Benchmark)
  • LinpackJava (Linpack Benchmark - optimized Java version)
  • JCK (Java Compatibility Kit)
  • JFCMark (Benchmark suite measuring/comparing performance of JFC/Swing)
  • GCBench (a Garbage Collector benchmark)