Java2Html(http://www.java2html.com/)是一個非常好用的工具,它可以直接將您的java源代碼生成HTML頁面,而且結(jié)構(gòu)組織的就象javadoc組織的一樣好,并且支持Ant Task擴展,給廣大的編程愛好者一個非常方便實用的功能.筆者就非常喜歡使用ant結(jié)合javadoc/java2html等直接生成javadoc和java html文件并發(fā)布到服務(wù)器上.各位可以去我的站點看一下(http://www.ibeyond.org/code),我的網(wǎng)站就是使用Eclipse(http://www.eclispse.org)結(jié)合ant(http://ant.apache.org/)等自動發(fā)布的,如果你愿意的話甚至可以進行每日構(gòu)建.我簡直是太喜歡Ant這個工具了(話題有點跑了,沒有辦法,小時候?qū)懽魑木腿菀着茴},習(xí)慣了).
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
言歸正傳,還是回到改造手記上來.
成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、成都做網(wǎng)站、成都網(wǎng)站制作、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設(shè)計師團隊。
不知道使用過java2html的各位看客有沒有注意到.java2html默認是不支持字符編碼的.也是,誰讓作者是一個洋人(從它的版權(quán)信息里看,應(yīng)該是一個英國人)呢?他們怎么能注意到遙遠的東方有一群”巨龍”將要使用他的”小軟件”呢?如果你的程序代碼中輸入了中文那么,^_^,那么恭喜你,你可以見識一下帶有中文亂碼的Html頁面了.說實話,這也是不容易見到的.當(dāng)然,英文極好的看官可以離開了,因為英文極好的您的代碼里當(dāng)然不會出現(xiàn)中文字符了,這也有損于你的能力的體現(xiàn)了,而象我等這樣只是認識簡單的二十幾個英文字母的英文愛好者當(dāng)然會覺得心理非常不爽了(如果有可能我甚至想把程序代碼全部使用中文書寫,當(dāng)然java支持這么作,只是我的boss不同意吧了,但愿這片文章不會唄我的boss看到.).
我知道很多人都象我一樣對于程序?qū)τ诰幊逃兄蹩駸岬膼酆?如果沒有這么狂熱的愛好你也不會利用者有限的寶貴的等價于金錢的時間來看我的這個臭屁文章),當(dāng)然不滿足于使用的軟件會有這樣的瑕疵,那么好吧,套用現(xiàn)在計算機硬件高手常用的一個口頭禪,讓我們開始”DIY”歷程吧(臭屁這么多,終于要進入主題了,我也開始有些心急了,呵呵).
實際上,到這里,我這個”榆木腦袋”(小學(xué)老師就是經(jīng)常使用這個”愛稱”)只想到了兩個解決辦法:
一. 在使用java2html之前先將我的代碼進行轉(zhuǎn)碼,然后讓java2html使用轉(zhuǎn)碼后的代碼.
二. 直接修改這個java2html的代碼,給java2html添加一個encoding編碼參數(shù).
各位不難想象.如果利用方法一,不管你如何轉(zhuǎn)換在英文環(huán)境中還是會出現(xiàn)亂碼,既是能正確顯示中文也需要你在Browser上手動選擇一下編碼方式.而方法二才能體現(xiàn)出我們的”高超水平”,而且可以很平滑的和原有的軟件結(jié)合,不影響其他的應(yīng)用.
從作者的軟件許可協(xié)議(http://www.vaegar.f9.co.uk/#License)可以看到這是一個共享軟件,使用者可以自由的發(fā)布,但是不可以反編譯,逆向工程等.所以我接下來將要作的是嚴格來說應(yīng)該很不妥當(dāng)?shù)?但是同樣我也不能容忍這個軟件的這個微小的瑕疵,于是,我在完全保留其版權(quán)信息并且尊重其版權(quán)的情況下對java2html進行了有限的擴充(在軟件中我還加入了我自己的一點小記號,呵呵,人無完人呀).
接下來我們要作的既是反編譯這個軟件包了.關(guān)于Decompile,業(yè)界有很多爭議,很多人認為java編譯過的代碼是不安全的,既是使用了混淆器也是這樣,這里我不想討論這個問題,因為我對這個方面也不是專家,也不是能人里手,還是留給那些喜歡討論的人來進行吧(關(guān)于java的討論實在是太多了).我在這里想說的是,我并不是鼓勵大家對java軟件進行反編譯,個人認為只是在覺得需要完善這個軟件的時候但不能獲得java源代碼的時候才能采用這種最下策的下策,而且進行相關(guān)工作的時候也一定要保留原作者的相關(guān)版權(quán)信息,僅此聲明一下.
首先將原來的j2h.jar(可以從http://www.java2html.com下載)解包,用winrar之類的就可以解開,然后象一個專業(yè)的駭客一樣,尋找入口吧(有點黑客帝國的意思了).最明顯的入口就是META-INF/MANIFEST.MF,為什么這么說呢?因為java通過這個文件指定這個Jar包的執(zhí)行程序的類名,也就是帶有Main方法的類,當(dāng)然它就是入口了(我并不是黑客帝國中的先知,第一那個先知是女的,至少是一個女人形態(tài),而我是男的;第二,我并沒有未卜先知的能力,如果有這個能力我就去考買獎券發(fā)家了,誰還來寫這勞什子程序呀).所有我們的目標就是先搞定這個文件,通過它尋找突破口.
J2h.class:
import com.java2html.Java2HTML;
public class j2h
{
public static void main(String args[])
throws Exception
{
Java2HTML.main(args);
}
public j2h()
{
}
}