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

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

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

    Asktalk

    天行健,君子以自強不息!
    posts - 21, comments - 79, trackbacks - 0, articles - 2
      BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

    Eclipse啟動機制(1)

    Posted on 2007-12-22 16:33 Asktalk 閱讀(4906) 評論(3)  編輯  收藏 所屬分類: Eclipse/Swt/Jface
     

    最近我一直在研究Eclipse的架構體系,下面我們就來看看Eclipse的啟動機制吧

    1Eclipse源代碼       
    eclipse-sourceBuild-srcIncluded-3.3.1.1.zip   
    版本:3.3.1.1        大小:95.058MB
    下載地址:http://download.eclipse.org/eclipse/downloads

    解壓后的目錄結構如下圖,通過執行build.bat可以編譯出完整的Eclipse-sdk-3.3.1.1運行包,和我們網上下載的一樣。但是這個過程可能需要一個小時左右的時間,要有耐性哦。所有的插件工程目錄在plugins中,我們只需要導入現有工程即可把plugins下所有工程導入。

    下面我們就先來研究一下Eclipse最核心的部分,就是RCP部分必須的插件。下面我列出了Eclipse RCP需要的插件。

    將這些代碼解壓縮到一個空目錄里,然后導入到Source InsightProject里。     

    二、Eclipse啟動過程

    首先我們從Eclipse的啟動過程開始分析。

    1exe部分的引導

    eclipse.exeEclipse的啟動文件,是與平臺相關的可執行文件。它的功能比較簡單,主要是加載startup.jar文件,代碼在Eclipse源代碼的eclipse-sourceBuild-srcIncluded-3.3.1.1"plugins"org.eclipse.platform"launchersrc.zip,對應多個平臺。對于win32平臺,你可以直接運行win32目錄下的build.bat文件來編譯得到它(需要安裝C編譯器)。

    2java代碼部分的執行入口

    對于Eclipse 3.3.1.1版本來說,如果在eclipse目錄下沒有找到startup.jar,則直接執行org.eclipse.equinox.launcher.Main.main方法。

    當然我們可以在eclipse目錄下定制我們自己的啟動引導包startup.jar,現在Eclipse 3.3.1.1好像已經不建議這樣做了。如果有這個包,那么這個包將是java代碼的執行入口,你可以在命令行下運行java -jar startup.jar命令來啟動Eclipse。它的入口是org.eclipse.core.launcher.Main類,這個類最終執行的還是org.eclipse.equinox.launcher.Main.main方法。它對應的源代碼在org.eclipse.equinox.launcher目錄下的Main.java。關于此文件的定制詳細信息請查看eclipse-sourceBuild-srcIncluded-3.3.1.1"plugins"org.eclipse.platform"launchersrc.zip中的eclipse.c的注解部分。

    我們從main函數往后跟蹤,找到basicRun方法,這個是啟動的主要部分。

        protectedvoid basicRun(String[] args) throws Exception {

            System.getProperties().put("eclipse.startTime", Long.toString(System.currentTimeMillis())); //$NON-NLS-1$

            commands = args;

            String[] passThruArgs = processCommandLine(args);

           

            if (!debug)

               // debug can be specified as system property as well

               debug = System.getProperty(PROP_DEBUG) != null;

            setupVMProperties();     //設置VM屬性

            processConfiguration();   //讀取configuration/config.ini配置文件

           

            // need to ensure that getInstallLocation is called at least once to initialize the value.

            // Do this AFTER processing the configuration to allow the configuration to set

            // the install location. 

            getInstallLocation();

            // locate boot plugin (may return -dev mode variations)

            URL[] bootPath = getBootPath(bootLocation);

            

            //Set up the JNI bridge. We need to know the install location to find the shared library

            setupJNI(bootPath);

           

            //ensure minimum Java version, do this after JNI is set up so that we can write an error message

            //with exitdata if we fail.

            if (!checkVersion(System.getProperty("java.version"), System.getProperty(PROP_REQUIRED_JAVA_VERSION))) //$NON-NLS-1$

                return;

           

            setSecurityPolicy(bootPath); //設置執行權限

            // splash handling is done here, because the default case needs to know

            // the location of the boot plugin we are going to use

            handleSplash(bootPath);

            beforeFwkInvocation();

            invokeFramework(passThruArgs, bootPath);    //啟動Eclipse內核

        }


    評論

    # re: Eclipse啟動機制(1)[未登錄]  回復  更多評論   

    2007-12-25 14:09 by washington
    好東西,收藏了。謝謝。

    # re: Eclipse啟動機制(1)  回復  更多評論   

    2008-01-30 10:52 by wzl
    不錯,學到一些東西

    # re: Eclipse啟動機制(1)  回復  更多評論   

    2008-02-23 09:38 by Java.net
    那么多項目,你是怎么導進eclipse的?一個一個導?
    主站蜘蛛池模板: 亚洲中文字幕精品久久| 偷自拍亚洲视频在线观看| 大地资源免费更新在线播放| 亚洲av无码偷拍在线观看| 中文字幕亚洲一区二区三区| 在线看片免费人成视久网| 精品国产亚洲第一区二区三区| 亚洲毛片αv无线播放一区| h视频在线观看免费网站| 国产精品亚洲AV三区| 婷婷精品国产亚洲AV麻豆不片 | 亚洲成人免费在线| 亚洲精品久久久久无码AV片软件| 国产亚洲精午夜久久久久久| 久久久久久国产a免费观看黄色大片| 美女被免费视频网站a| 久久久久久亚洲精品成人| yy6080亚洲一级理论| 最新黄色免费网站| 二级毛片免费观看全程| 亚洲噜噜噜噜噜影院在线播放| 亚洲婷婷国产精品电影人久久| 亚洲天堂免费在线| 久久精品成人免费看| 爱情岛论坛亚洲品质自拍视频网站| 亚洲精品线在线观看| 亚洲AV网站在线观看| 一二三四免费观看在线电影 | 久久无码av亚洲精品色午夜| 亚洲人成网站影音先锋播放| 亚洲高清无码专区视频| 成年性午夜免费视频网站不卡| 久久久久久免费一区二区三区| 偷自拍亚洲视频在线观看| 亚洲欧洲国产综合AV无码久久| 亚洲视频精品在线| 亚洲国产精品一区第二页| 亚洲国产综合精品一区在线播放| 午夜一区二区免费视频| 午夜福利不卡片在线播放免费| 中文字幕免费在线|