<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Feeling

        三人行,必有我?guī)熝?/p>

       ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評(píng)論 :: 0 Trackbacks

    #

    Java應(yīng)用定制工廠(以下簡(jiǎn)稱為JCB,Java Customization Builder)是一個(gè)針對(duì)Java輕量級(jí)桌面應(yīng)用進(jìn)行精簡(jiǎn)優(yōu)化的小工具,使用它可以精簡(jiǎn)你的jar包,并自動(dòng)生成一個(gè)精簡(jiǎn)的JRE,也可以使用它生成一個(gè)Exe啟動(dòng)引導(dǎo)程序,并且能夠?qū)δ愕腏ava應(yīng)用自動(dòng)做Pack200和Unpack200處理。使用本工具定制的Java桌面應(yīng)用通常不會(huì)超過(guò)5M(包含JRE),SWT客戶端程序相對(duì)于Swing客戶端程序更小,一般不會(huì)超過(guò)3M。

    JCB1.0.3主要功能是可以支持
    添加Exe的版本信息,并且能夠更細(xì)節(jié)的定義Exe的啟動(dòng)行為,比如是否顯示一個(gè)splash窗口,是否優(yōu)先使用精簡(jiǎn)版的jre,以及增加了對(duì)unpack操作的優(yōu)化,讓?xiě)?yīng)用程序第一次運(yùn)行啟動(dòng)的更快。同時(shí)也增加了對(duì)系統(tǒng)權(quán)限的支持,不再要求需要管理員權(quán)限才能運(yùn)行軟件,Guest用戶一樣的使用。

    下一個(gè)版本考慮增加一個(gè)Au3的編輯器,具有語(yǔ)法高亮和智能輔助功能,可以讓高級(jí)用戶定制自己的Exe行為。

    軟件主頁(yè):http://jcb.sourceforge.net
    JCB1.0.3下載地址:http://sourceforge.net/projects/jcb/files/JCB_1.0.3.zip/download


    posted @ 2011-12-26 22:13 三人行,必有我?guī)熝?閱讀(1607) | 評(píng)論 (3)編輯 收藏

    在一個(gè)線程中啟動(dòng)了一個(gè)線程鉤子,然后死活拿不到主線程中的消息,全局鉤子就沒(méi)問(wèn)題。折騰了一下午才發(fā)現(xiàn)這個(gè)線程鉤子是在子線程中啟動(dòng)的,GetCurrentThreadId 方法拿到的不是主線程的threadId,自然也就獲取不到主線程的系統(tǒng)消息。Google了好多文章,都沒(méi)有提到這一點(diǎn),真TMD郁悶,完全浪費(fèi)我時(shí)間,還以為是我的類(lèi)庫(kù)寫(xiě)錯(cuò)了,鬧了半天是調(diào)用的參數(shù)傳的不對(duì)。
    posted @ 2011-12-24 18:58 三人行,必有我?guī)熝?閱讀(1789) | 評(píng)論 (1)編輯 收藏

    同樣的API, IShellFolder遍歷控制面板里面節(jié)點(diǎn)的children,所有的.net代碼都能獲取,所有的非.net代碼都無(wú)法獲取???

    本來(lái)還以為是代碼的問(wèn)題,debug一天死活沒(méi)找到問(wèn)題,最后在codeproject上找了十幾個(gè)例子,發(fā)現(xiàn)都一樣的結(jié)果,why? 

    難道僅僅對(duì).net的才開(kāi)放遍歷的權(quán)限?
    posted @ 2011-12-14 12:35 三人行,必有我?guī)熝?閱讀(1734) | 評(píng)論 (1)編輯 收藏

    1、安裝VS2008
    2、安裝 Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
    3、修改SDK的SetEnv.cmd的第146行 
    Set "VCTools=%VCRoot%\VC" 為 Set "VCTools=%VCRoot%\VC\Bin"
    4、修改build.bat的環(huán)境配置
    call "C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\SetEnv" /xp /x86 /Release (不是%PROGRAMFILES%目錄,編譯字幕為綠色,PROGRAMFILES%目錄編譯出來(lái)的dll有400多k。)
    call "%PROGRAMFILES%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
    posted @ 2011-12-13 13:16 三人行,必有我?guī)熝?閱讀(378) | 評(píng)論 (0)編輯 收藏

         摘要: Java應(yīng)用定制工廠(以下簡(jiǎn)稱為JCB,Java Customization Builder)是一個(gè)針對(duì)Java輕量級(jí)桌面應(yīng)用進(jìn)行精簡(jiǎn)優(yōu)化的小工具,使用它可以精簡(jiǎn)你的jar包,并自動(dòng)生成一個(gè)精簡(jiǎn)的JRE,也可以使用它生成一個(gè)Exe啟動(dòng)引導(dǎo)程序,并且能夠?qū)δ愕腏ava應(yīng)用自動(dòng)做Pack200和Unpack200處理。使用本工具定制的Java桌面應(yīng)用通常不會(huì)超過(guò)10M(包含JRE),SWT客戶端程序相對(duì)于Swing客戶端程序更小,一般不會(huì)超過(guò)5M。  閱讀全文
    posted @ 2011-12-12 16:27 三人行,必有我?guī)熝?閱讀(6237) | 評(píng)論 (12)編輯 收藏

    GreenJVMMake 是一個(gè)精簡(jiǎn)JRE的小工具,詳細(xì)信息請(qǐng)參見(jiàn)項(xiàng)目:

    http://code.google.com/p/greenvm/

    javaonepackage 是一個(gè)集成了GreenJVMMake的IDE,可以方便的生成自定義的JRE,詳細(xì)信息請(qǐng)參見(jiàn)項(xiàng)目:

    http://code.google.com/p/javaonepackage/

    比較遺憾的是javaonepackage的作者遺失了代碼,導(dǎo)致項(xiàng)目無(wú)法進(jìn)一步的更新,影響了使用。

    用以上工具生成的精簡(jiǎn)JRE通常不超過(guò)2M,可是用exe4j將Java應(yīng)用轉(zhuǎn)換成exe的時(shí)候,卻會(huì)拋出Couldn't load main class,原因是因?yàn)閑xe4j使用自己的jar來(lái)加載用戶的Jar包,這其中用到了一些反射機(jī)制,精簡(jiǎn)JRE里面當(dāng)然是不含有多余的class文件的,所以加載必然失敗。我們需要做的就是把這些相關(guān)的class添加到精簡(jiǎn)JRE中,這些class包含在 java\lang, java\util, sun\reflect 這三個(gè)包中。將這些class添加到精簡(jiǎn)jre中,大小也僅僅增加數(shù)百K而已,在我們可以的接受范圍之內(nèi)。

    PS:由于GreenJVMMake的機(jī)制是檢查運(yùn)行時(shí)加載的class文件,所以它很可能遺失Jar運(yùn)行所需要的exception class,這會(huì)導(dǎo)致運(yùn)行時(shí)JVM的崩潰,用戶需手動(dòng)加載所有可能會(huì)產(chǎn)生的exception class,包含runtime的和非runtime的。
    posted @ 2010-09-02 10:53 三人行,必有我?guī)熝?閱讀(4028) | 評(píng)論 (1)編輯 收藏

    現(xiàn)在網(wǎng)絡(luò)上越來(lái)越流行.net和java寫(xiě)的客戶端的小應(yīng)用程序,而且后綴是exe。本文討論的是如何從exe4j封裝的exe文件中將自己想要的jar抽取出來(lái)。

    exe4j一直是一種比較通用的java exe封裝工具,但是其并沒(méi)有將jar轉(zhuǎn)換為本地文件,而是將jar文件通過(guò)特殊處理后,封裝成的一個(gè)exe文件。因此只要我們了解了exe4j的原理,就可以將jar文件從exe文件中提取出來(lái),并通過(guò)反編譯工具來(lái)查看程序代碼。

    1. 分析Exe4J,得知其在添加文件到.exe時(shí),使用0x88將文件內(nèi)容Xor,所以第一步,我們需要將原始的數(shù)據(jù)提取出來(lái):
    import java.io.*;
    import java.util.*;

    public class gen {
        
    public static void main(String args[]) throws IOException {
            FileInputStream fin 
    = new FileInputStream(args[0]); // 可以將整個(gè)exe文件解碼
            FileOutputStream fout = new FileOutputStream(args[1]);
            BufferedInputStream bin 
    = new BufferedInputStream(fin);
            BufferedOutputStream bout 
    = new BufferedOutputStream(fout);
            
    int in = 0;
            
    do {
                in 
    = bin.read();
                
    if (in == -1)
                    
    break;
                in 
    ^= 0x88;
                bout.write(in);
            } 
    while (true);
            bin.close();
            fin.close();
            bout.close();
            fout.close();
        }
    }

    2.分析提取出來(lái)的數(shù)據(jù)文件,使用WinHex查看其16進(jìn)制代碼。由于Jar文件的開(kāi)頭總是PK開(kāi)頭,并且總包含有manifest.mf文件,并且結(jié)尾總是有3個(gè)00,同時(shí)結(jié)尾段有整個(gè)Jar包文件的索引,我們可以根據(jù)這一特性來(lái)分析我們需要的片段。

    1、搜索Jar的manifest,然后往前找,找到的第一個(gè)PK段,即為一個(gè)Jar的開(kāi)頭。
    2、查看片段里Jar里的每個(gè)class信息,直到最后的文件索引片段。
    3、一個(gè)Jar的結(jié)束片段位于索引片段之后,仍然包含著PK段,并且最后包含著3個(gè)00,且這3個(gè)00距離PK大概20個(gè)字節(jié)左右

    根據(jù)以上3條準(zhǔn)則,足以提取整個(gè)Jar數(shù)據(jù)段,然后導(dǎo)入新文件中,并且以zip字段命名,嘗試用ZIP解壓縮軟件打開(kāi),看看是否抽取正確。

    需要注意的是WinHex非注冊(cè)版,只能保存280K大小的文件,更大的Jar文件,需要注冊(cè)版的WinHex才行。
    posted @ 2010-08-22 01:03 三人行,必有我?guī)熝?閱讀(6813) | 評(píng)論 (4)編輯 收藏

    1、調(diào)用截圖工具:

    http://iecapt.sourceforge.net/

    2、使用Java類(lèi)庫(kù),通過(guò)Render生成Java2D圖像:

    http://www.ldotc.com/Web+Page+Thumbnails+in+Java.html

    方法1的優(yōu)點(diǎn)在于,圖像不會(huì)失真,速度快,但是缺點(diǎn)是依賴于服務(wù)器端的UI,無(wú)UI的話,則無(wú)法使用。
    方法2的優(yōu)點(diǎn)是不依賴于服務(wù)器端的UI,但是圖像容易失真,且速度相對(duì)較慢……
    posted @ 2010-08-17 12:50 三人行,必有我?guī)熝?閱讀(1442) | 評(píng)論 (0)編輯 收藏

         摘要: TGA or TARGA format is a format for describing bitmap images, it is capable of representing bitmaps ranging from black and white, indexed colour, and RGB colour, the format also supports various compr...  閱讀全文
    posted @ 2010-03-29 13:02 三人行,必有我?guī)熝?閱讀(1994) | 評(píng)論 (0)編輯 收藏

    Eclipse 是一個(gè)集成開(kāi)發(fā)環(huán)境,同時(shí)又是一個(gè)產(chǎn)品平臺(tái)。這樣有時(shí)候我們就會(huì)碰到一個(gè)問(wèn)題,在開(kāi)發(fā)Debug項(xiàng)目的時(shí)候沒(méi)有問(wèn)題,打包發(fā)布的時(shí)候就有問(wèn)題了,這可如何是好?由于Debug時(shí)候和發(fā)布后plugin的ClassLoader機(jī)制不盡相同,出現(xiàn)這個(gè)問(wèn)題的幾率還有會(huì)有的。

    Java 在這一點(diǎn)上為我們提供了方法,那就是遠(yuǎn)程Debug。遠(yuǎn)程Debug一般用于Web開(kāi)發(fā),或者客戶端無(wú)法負(fù)載大規(guī)模的應(yīng)用時(shí)才會(huì)運(yùn)用到,所以Desktop developer 很少會(huì)涉及到這個(gè)概念。不過(guò)Eclipse 的產(chǎn)品平臺(tái)卻讓我再次體會(huì)到了Java的強(qiáng)大。

    關(guān)于Eclipse Remote Debug的文章,大家可以從此處學(xué)習(xí):

    http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/index.html

    Remote Debug 需要2方面的設(shè)置,一個(gè)是產(chǎn)品平臺(tái)JVM啟動(dòng)參數(shù)的設(shè)置,需要讓平臺(tái)以遠(yuǎn)程Debug的模式啟動(dòng)。然后是在開(kāi)發(fā)端監(jiān)聽(tīng)產(chǎn)品平臺(tái)的運(yùn)行狀態(tài)。當(dāng)產(chǎn)品平臺(tái)運(yùn)行到斷點(diǎn)代碼時(shí),Eclipse開(kāi)發(fā)端就會(huì)進(jìn)入Debug界面,像普通debug一樣正常debug了。

    posted @ 2009-09-10 16:59 三人行,必有我?guī)熝?閱讀(2410) | 評(píng)論 (1)編輯 收藏

    僅列出標(biāo)題
    共9頁(yè): 上一頁(yè) 1 2 3 4 5 6 7 8 9 下一頁(yè) 
    GitHub |  開(kāi)源中國(guó)社區(qū) |  maven倉(cāng)庫(kù) |  文件格式轉(zhuǎn)換 
    主站蜘蛛池模板: 亚洲精品无码成人片久久不卡| 一区视频免费观看| 暖暖日本免费在线视频| 色老头综合免费视频| 亚洲一本综合久久| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 久久久久免费精品国产小说| 亚洲三级中文字幕| 亚洲男人av香蕉爽爽爽爽| 亚洲精品免费在线观看| 精品国产日韩亚洲一区在线| 好看的亚洲黄色经典| 成人毛片手机版免费看| a毛片在线免费观看| 亚洲AV无码精品国产成人| 亚洲国产综合精品中文第一区| 国产老女人精品免费视频| 国产婷婷成人久久Av免费高清| 亚洲精品欧美综合四区| 亚洲人成电影在线天堂| 亚洲国产精品日韩| 国产香蕉九九久久精品免费| 91在线免费视频| 国产99久久亚洲综合精品| 亚洲国产精品成人久久久| 亚洲无线观看国产精品| 日本黄色免费观看| 成人免费视频网站www| 91在线视频免费观看| 免费夜色污私人影院网站电影| 亚洲国产精品张柏芝在线观看| 国产亚洲精品va在线| 亚洲?V乱码久久精品蜜桃| 2021免费日韩视频网| a级毛片黄免费a级毛片| 一区二区三区免费在线视频 | 亚洲三级视频在线| 亚洲AV无码专区国产乱码4SE| 免费v片在线观看无遮挡| 最近最新的免费中文字幕| 久久免费观看国产精品88av|