您好,登錄后才能下訂單哦!
Java2Html(http://www.java2html.com/)是一個非常好用的工具,它可以直接將您的java源代碼生成HTML頁面,而且結構組織的就象javadoc組織的一樣好,并且支持Ant Task擴展,給廣大的編程愛好者一個非常方便實用的功能.筆者就非常喜歡使用ant結合javadoc/java2html等直接生成javadoc和java html文件并發布到服務器上.各位可以去我的站點看一下(http://www.ibeyond.org/code),我的網站就是使用Eclipse(http://www.eclispse.org)結合ant(http://ant.apache.org/)等自動發布的,如果你愿意的話甚至可以進行每日構建.我簡直是太喜歡Ant這個工具了(話題有點跑了,沒有辦法,小時候寫作文就容易跑題,習慣了).
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
言歸正傳,還是回到改造手記上來.
不知道使用過java2html的各位看客有沒有注意到.java2html默認是不支持字符編碼的.也是,誰讓作者是一個洋人(從它的版權信息里看,應該是一個英國人)呢?他們怎么能注意到遙遠的東方有一群”巨龍”將要使用他的”小軟件”呢?如果你的程序代碼中輸入了中文那么,^_^,那么恭喜你,你可以見識一下帶有中文亂碼的Html頁面了.說實話,這也是不容易見到的.當然,英文極好的看官可以離開了,因為英文極好的您的代碼里當然不會出現中文字符了,這也有損于你的能力的體現了,而象我等這樣只是認識簡單的二十幾個英文字母的英文愛好者當然會覺得心理非常不爽了(如果有可能我甚至想把程序代碼全部使用中文書寫,當然java支持這么作,只是我的boss不同意吧了,但愿這片文章不會唄我的boss看到.).
我知道很多人都象我一樣對于程序對于編程有著近乎狂熱的愛好(如果沒有這么狂熱的愛好你也不會利用者有限的寶貴的等價于金錢的時間來看我的這個臭屁文章),當然不滿足于使用的軟件會有這樣的瑕疵,那么好吧,套用現在計算機硬件高手常用的一個口頭禪,讓我們開始”DIY”歷程吧(臭屁這么多,終于要進入主題了,我也開始有些心急了,呵呵).
實際上,到這里,我這個”榆木腦袋”(小學老師就是經常使用這個”愛稱”)只想到了兩個解決辦法:
一. 在使用java2html之前先將我的代碼進行轉碼,然后讓java2html使用轉碼后的代碼.
二. 直接修改這個java2html的代碼,給java2html添加一個encoding編碼參數.
各位不難想象.如果利用方法一,不管你如何轉換在英文環境中還是會出現亂碼,既是能正確顯示中文也需要你在Browser上手動選擇一下編碼方式.而方法二才能體現出我們的”高超水平”,而且可以很平滑的和原有的軟件結合,不影響其他的應用.
從作者的軟件許可協議(http://www.vaegar.f9.co.uk/#License)可以看到這是一個共享軟件,使用者可以自由的發布,但是不可以反編譯,逆向工程等.所以我接下來將要作的是嚴格來說應該很不妥當的,但是同樣我也不能容忍這個軟件的這個微小的瑕疵,于是,我在完全保留其版權信息并且尊重其版權的情況下對java2html進行了有限的擴充(在軟件中我還加入了我自己的一點小記號,呵呵,人無完人呀).
接下來我們要作的既是反編譯這個軟件包了.關于Decompile,業界有很多爭議,很多人認為java編譯過的代碼是不安全的,既是使用了混淆器也是這樣,這里我不想討論這個問題,因為我對這個方面也不是專家,也不是能人里手,還是留給那些喜歡討論的人來進行吧(關于java的討論實在是太多了).我在這里想說的是,我并不是鼓勵大家對java軟件進行反編譯,個人認為只是在覺得需要完善這個軟件的時候但不能獲得java源代碼的時候才能采用這種最下策的下策,而且進行相關工作的時候也一定要保留原作者的相關版權信息,僅此聲明一下.
首先將原來的j2h.jar(可以從http://www.java2html.com下載)解包,用winrar之類的就可以解開,然后象一個專業的駭客一樣,尋找入口吧(有點黑客帝國的意思了).最明顯的入口就是META-INF/MANIFEST.MF,為什么這么說呢?因為java通過這個文件指定這個Jar包的執行程序的類名,也就是帶有Main方法的類,當然它就是入口了(我并不是黑客帝國中的先知,第一那個先知是女的,至少是一個女人形態,而我是男的;第二,我并沒有未卜先知的能力,如果有這個能力我就去考買獎券發家了,誰還來寫這勞什子程序呀).所有我們的目標就是先搞定這個文件,通過它尋找突破口.
J2h.class:
import com.java2html.Java2HTML;
public class j2h
{
public static void main(String args[])
throws Exception
{
Java2HTML.main(args);
}
public j2h()
{
}
}
看到了,它直接把args參數送到java2html.main中了,就象破案一樣,有了現在就開始追蹤吧.
欲知后事如何,且聽下回分解.
版權歸iBeyond(http://www.ibeyond.org)所有,轉載請著名出處并保留版權信息.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。