﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Asktalk-随笔分类-Eclipse</title><link>http://www.blogjava.net/asktalk/category/2809.html</link><description>&lt;span class="STYLE3"&gt;天行健，君子以自强不息！&lt;/span&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 26 Dec 2007 04:55:29 GMT</lastBuildDate><pubDate>Wed, 26 Dec 2007 04:55:29 GMT</pubDate><ttl>60</ttl><item><title>Eclipse启动机制（1）</title><link>http://www.blogjava.net/asktalk/archive/2007/12/22/169593.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Sat, 22 Dec 2007 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/asktalk/archive/2007/12/22/169593.html</guid><wfw:comment>http://www.blogjava.net/asktalk/comments/169593.html</wfw:comment><comments>http://www.blogjava.net/asktalk/archive/2007/12/22/169593.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/asktalk/comments/commentRss/169593.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asktalk/services/trackbacks/169593.html</trackback:ping><description><![CDATA[&nbsp;
<p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋体">最近我一直在研究</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">的架构体系，下面我们就来看看</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">的启动机制吧</span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">1</span><span style="font-size: 10.5pt; font-family: 新宋体">、</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">源代码</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
eclipse-sourceBuild-srcIncluded-3.3.1.1.zip&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10.5pt; font-family: 新宋体">版本：</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">3.3.1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10.5pt; font-family: 新宋体">大小：</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">95.058MB<br />
</span><span style="font-size: 10.5pt; font-family: 新宋体">下载地址：</span><a href="http://download.eclipse.org/eclipse/downloads"><span style="font-size: 10.5pt; color: windowtext; font-family: 'Arial','sans-serif'; text-decoration: none; text-underline: none">http://download.eclipse.org/eclipse/downloads</a></span></p>
<p style="background: white">解压后的目录结构如下图，通过执行build.bat可以编译出完整的Eclipse-sdk-3.3.1.1运行包，和我们网上下载的一样。但是这个过程可能需要一个小时左右的时间，要有耐性哦。所有的插件工程目录在plugins中，我们只需要导入现有工程即可把plugins下所有工程导入。<br />
<img height="567" alt="" src="http://www.blogjava.net/images/blogjava_net/asktalk/eclipse1.jpg" width="446" border="0" /><br />
</p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋体">下面我们就先来研究一下</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">最核心的部分，就是</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">RCP</span><span style="font-size: 10.5pt; font-family: 新宋体">部分必须的插件。下面我列出了</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse RCP</span><span style="font-size: 10.5pt; font-family: 新宋体">需要的插件。<br />
<img height="348" alt="" src="http://www.blogjava.net/images/blogjava_net/asktalk/eclipse.jpg" width="435" border="0" /><br />
</span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋体">将这些代码解压缩到一个空目录里，然后导入到</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Source&nbsp;Insight</span><span style="font-size: 10.5pt; font-family: 新宋体">的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Project</span><span style="font-size: 10.5pt; font-family: 新宋体">里。</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋体">二、</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">启动过程</span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋体">首先我们从</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">的启动过程开始分析。</span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">1</span><span style="font-size: 10.5pt; font-family: 新宋体">、</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">exe</span><span style="font-size: 10.5pt; font-family: 新宋体">部分的引导</span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse.exe</span><span style="font-size: 10.5pt; font-family: 新宋体">是</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">的启动文件，是与平台相关的可执行文件。它的功能比较简单，主要是加载</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">startup.jar</span><span style="font-size: 10.5pt; font-family: 新宋体">文件，代码在</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">源代码的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse-sourceBuild-srcIncluded-3.3.1.1"plugins"org.eclipse.platform"launchersrc.zip</span><span style="font-size: 10.5pt; font-family: 新宋体">，对应多个平台。对于</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">win32</span><span style="font-size: 10.5pt; font-family: 新宋体">平台，你可以直接运行</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">win32</span><span style="font-size: 10.5pt; font-family: 新宋体">目录下的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">build.bat</span><span style="font-size: 10.5pt; font-family: 新宋体">文件来编译得到它（需要安装</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">C</span><span style="font-size: 10.5pt; font-family: 新宋体">编译器）。</span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">2</span><span style="font-size: 10.5pt; font-family: 新宋体">、</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">java</span><span style="font-size: 10.5pt; font-family: 新宋体">代码部分的执行入口</span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋体">对于</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse 3.3.1.1</span><span style="font-size: 10.5pt; font-family: 新宋体">版本来说，如果在</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">目录下没有找到</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">startup.jar</span><span style="font-size: 10.5pt; font-family: 新宋体">，则直接执行</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">org.eclipse.equinox.launcher.Main.main</span><span style="font-size: 10.5pt; font-family: 新宋体">方法。</span></p>
<p style="background: white"><span style="font-size: 10.5pt; font-family: 新宋体">当然我们可以在</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">目录下定制我们自己的启动引导包</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">startup.jar</span><span style="font-size: 10.5pt; font-family: 新宋体">，现在</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse 3.3.1.1</span><span style="font-size: 10.5pt; font-family: 新宋体">好像已经不建议这样做了。如果有这个包，那么这个包将是</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">java</span><span style="font-size: 10.5pt; font-family: 新宋体">代码的执行入口，你可以在命令行下运行</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">java -jar startup.jar</span><span style="font-size: 10.5pt; font-family: 新宋体">命令来启动</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-size: 10.5pt; font-family: 新宋体">。它的入口是</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">org.eclipse.core.launcher.Main</span><span style="font-size: 10.5pt; font-family: 新宋体">类，这个类最终执行的还是</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">org.eclipse.equinox.launcher.Main.main</span><span style="font-size: 10.5pt; font-family: 新宋体">方法。它对应的源代码在</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">org.eclipse.equinox.launcher</span><span style="font-size: 10.5pt; font-family: 新宋体">目录下的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">Main.java</span><span style="font-size: 10.5pt; font-family: 新宋体">。关于此文件的定制详细信息请查看</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse-sourceBuild-srcIncluded-3.3.1.1"plugins"org.eclipse.platform"launchersrc.zip</span><span style="font-size: 10.5pt; font-family: 新宋体">中的</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">eclipse.c</span><span style="font-size: 10.5pt; font-family: 新宋体">的注解部分。<br />
<br />
<span style="font-size: 10.5pt; font-family: 新宋体">我们从</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">main</span><span style="font-size: 10.5pt; font-family: 新宋体">函数往后跟踪，找到</span><span style="font-size: 10.5pt; font-family: 'Arial','sans-serif'">basicRun</span><span style="font-size: 10.5pt; font-family: 新宋体">方法，这个是启动的主要部分。</span><br />
</span></p>
<p style="background: white">
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">protected</span></strong><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">void</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> basicRun(String[] args) </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">throws</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> Exception {</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.<em>getProperties</em>().put(</span><span style="font-size: 9pt; color: #2a00ff; font-family: 'Arial','sans-serif'">"eclipse.startTime"</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">, Long.<em>toString</em>(System.<em>currentTimeMillis</em>())); </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//$NON-NLS-1$</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">commands</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> = args;</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] passThruArgs = processCommandLine(args);</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">if</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> (!</span><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">debug</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">)</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// debug can be specified as system property as well</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; </span><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">debug</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> = System.<em>getProperty</em>(</span><em><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">PROP_DEBUG</span></em><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">) != </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">null</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">;</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setupVMProperties();&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 'Arial','sans-serif'">//</span><span style="font-family: 新宋体">设置</span><span style="font-family: 'Arial','sans-serif'">VM</span><span style="font-family: 新宋体">属性</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; processConfiguration();&nbsp;&nbsp; </span><span style="font-family: 'Arial','sans-serif'">//</span><span style="font-family: 新宋体">读取</span><span style="font-family: 'Arial','sans-serif'">configuration/config.ini</span><span style="font-family: 新宋体">配置文件</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// need to ensure that getInstallLocation is called at least once to initialize the value.</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// Do this AFTER processing the configuration to allow the configuration to set</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// the install location.&nbsp;</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getInstallLocation();</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// locate boot plugin (may return -dev mode variations)</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URL[] bootPath = getBootPath(</span><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">bootLocation</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">);</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//Set up the JNI bridge.&nbsp;We need to know the install location to find the shared library</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setupJNI(bootPath);</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//ensure minimum Java version, do this after JNI is set up so that we can write an error message </span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//with exitdata if we fail.</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">if</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'"> (!checkVersion(System.<em>getProperty</em>(</span><span style="font-size: 9pt; color: #2a00ff; font-family: 'Arial','sans-serif'">"java.version"</span><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">), System.<em>getProperty</em>(</span><em><span style="font-size: 9pt; color: #0000c0; font-family: 'Arial','sans-serif'">PROP_REQUIRED_JAVA_VERSION</span></em><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">))) </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">//$NON-NLS-1$</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 9pt; color: #7f0055; font-family: 'Arial','sans-serif'">return</span></strong><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">;</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setSecurityPolicy(bootPath);&nbsp;</span><span style="font-family: 'Arial','sans-serif'">//</span><span style="font-family: 新宋体">设置执行权限</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// splash handling is done here, because the default case needs to know</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 9pt; color: #3f7f5f; font-family: 'Arial','sans-serif'">// the location of the boot plugin we are going to use</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handleSplash(bootPath);</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; beforeFwkInvocation();</span></p>
            <p style="text-align: left" align="left"><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invokeFramework(passThruArgs, bootPath);&nbsp;&nbsp;&nbsp; </span><span style="font-family: 'Arial','sans-serif'">//</span><span style="font-family: 新宋体">启动</span><span style="font-family: 'Arial','sans-serif'">Eclipse</span><span style="font-family: 新宋体">内核</span></p>
            <p><span style="font-size: 9pt; color: black; font-family: 'Arial','sans-serif'">&nbsp;&nbsp;&nbsp; }</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
</p>
<img src ="http://www.blogjava.net/asktalk/aggbug/169593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asktalk/" target="_blank">Asktalk</a> 2007-12-22 16:33 <a href="http://www.blogjava.net/asktalk/archive/2007/12/22/169593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近正在研究的Eclipse插件项目</title><link>http://www.blogjava.net/asktalk/archive/2007/12/22/169490.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Fri, 21 Dec 2007 16:43:00 GMT</pubDate><guid>http://www.blogjava.net/asktalk/archive/2007/12/22/169490.html</guid><wfw:comment>http://www.blogjava.net/asktalk/comments/169490.html</wfw:comment><comments>http://www.blogjava.net/asktalk/archive/2007/12/22/169490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asktalk/comments/commentRss/169490.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asktalk/services/trackbacks/169490.html</trackback:ping><description><![CDATA[先列出这些开源项目，随后对其实现过程深入分析。<br />
<br />
1，Hibernate Synchronizer Eclipse Plugin&nbsp;&nbsp; 最近更新在2006.04.26<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://hibernatesynch.sourceforge.net/">http://hibernatesynch.sourceforge.net/</a>&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 源代码：:pserver:anonymous@hibernatesynch.cvs.sourceforge.net:/cvsroot/hibernatesynch&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HibernateSynchronizer3&nbsp;&nbsp; 为新项目，支持Eclipse3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HibernateSynchronizer&nbsp; &nbsp;&nbsp; 为旧项目，支持Eclipse2&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本插件使用方法：http://dev2dev.bea.com.cn/bbsdoc/20060124187.html<br />
&nbsp;&nbsp;&nbsp;&nbsp; 可以生成hibernate的所有配置文件和dao。基本流程是 hibernate.cfg.xml-&gt;xxx.hbm.xml-&gt;po and dao<br />
<br />
2,&nbsp; SqlExplorer&nbsp;&nbsp;&nbsp;&nbsp;最近更新 2007.09.08<br />
&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.sqlexplorer.org/index.php">http://www.sqlexplorer.org/index.php</a><br />
&nbsp;&nbsp;&nbsp;&nbsp; http://sourceforge.net/projects/eclipsesql<br />
&nbsp;&nbsp;&nbsp;&nbsp; 源代码：:pserver:anonymous@eclipsesql.cvs.sourceforge.net:/cvsroot/eclipsesql<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;与myEclipse的数据库管理工具相近。<br />
<br />
3，GmailClipse 一个Eclipse RCP&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://sourceforge.net/projects/gmclipse/">http://sourceforge.net/projects/gmclipse/</a> <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;源代码：:pserver:anonymous@gmclipse.cvs.sourceforge.net:/cvsroot/gmclipse&nbsp;&nbsp;&nbsp; 源代码为空，没有共享<br />
&nbsp;&nbsp;&nbsp;&nbsp; 像hotmail一样的邮件客户端收发系统。其源代码对于学习RCP有很大的帮助。<br />
<br />
4,&nbsp; SpringIde&nbsp;&nbsp;&nbsp; spring官方的IDE工具。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://springide.org/project/browser/trunk"><font color="#000000">源代码：</font>http://springide.org/project/browser/trunk</a><br />
<br />
5， Hibernate tools&nbsp;&nbsp; hibernate官方IDE工具。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;官方介绍：<a href="http://www.hibernate.org/268.html">http://www.hibernate.org/268.html</a>&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;源代码svn: <a href="http://anonhibernate.labs.jboss.com/branches/Branch_3_2/HibernateExt">http://anonhibernate.labs.jboss.com/branches/Branch_3_2/HibernateExt</a>&nbsp;<br />
<br />
6,&nbsp;&nbsp; Html解析工具 HTML Parser<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;官方网址：<a href="http://htmlparser.sourceforge.net/">http://htmlparser.sourceforge.net/</a> <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<img src ="http://www.blogjava.net/asktalk/aggbug/169490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asktalk/" target="_blank">Asktalk</a> 2007-12-22 00:43 <a href="http://www.blogjava.net/asktalk/archive/2007/12/22/169490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CVS团队开发：Window2003版</title><link>http://www.blogjava.net/asktalk/archive/2005/08/14/10059.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Sat, 13 Aug 2005 23:14:00 GMT</pubDate><guid>http://www.blogjava.net/asktalk/archive/2005/08/14/10059.html</guid><wfw:comment>http://www.blogjava.net/asktalk/comments/10059.html</wfw:comment><comments>http://www.blogjava.net/asktalk/archive/2005/08/14/10059.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/asktalk/comments/commentRss/10059.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asktalk/services/trackbacks/10059.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: CVS团队开发：Window2003版用法&nbsp;&nbsp;<a href='http://www.blogjava.net/asktalk/archive/2005/08/14/10059.html'>阅读全文</a><img src ="http://www.blogjava.net/asktalk/aggbug/10059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asktalk/" target="_blank">Asktalk</a> 2005-08-14 07:14 <a href="http://www.blogjava.net/asktalk/archive/2005/08/14/10059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用xdoclet开发hibernate3的ant通用代码</title><link>http://www.blogjava.net/asktalk/archive/2005/07/30/8784.html</link><dc:creator>Asktalk</dc:creator><author>Asktalk</author><pubDate>Sat, 30 Jul 2005 08:31:00 GMT</pubDate><guid>http://www.blogjava.net/asktalk/archive/2005/07/30/8784.html</guid><wfw:comment>http://www.blogjava.net/asktalk/comments/8784.html</wfw:comment><comments>http://www.blogjava.net/asktalk/archive/2005/07/30/8784.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/asktalk/comments/commentRss/8784.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asktalk/services/trackbacks/8784.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 不知道为什么，复制到这里颜色没了，所以就成下面的了。还可以凑或着看吧<br>不用多说了，已经注释很详细了，希望对你有帮助&nbsp;&nbsp;<a href='http://www.blogjava.net/asktalk/archive/2005/07/30/8784.html'>阅读全文</a><img src ="http://www.blogjava.net/asktalk/aggbug/8784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asktalk/" target="_blank">Asktalk</a> 2005-07-30 16:31 <a href="http://www.blogjava.net/asktalk/archive/2005/07/30/8784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>