﻿<?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-Jiangshachina-随笔分类-Eclipse</title><link>http://www.blogjava.net/jiangshachina/category/16093.html</link><description>同是Java爱好者，相逢何必曾相识！&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;a cup of Java, cheers!</description><language>zh-cn</language><lastBuildDate>Sun, 06 Apr 2008 15:55:18 GMT</lastBuildDate><pubDate>Sun, 06 Apr 2008 15:55:18 GMT</pubDate><ttl>60</ttl><item><title>Eclipse Weed(原)</title><link>http://www.blogjava.net/jiangshachina/archive/2006/10/12/63436.html</link><dc:creator>Sha Jiang</dc:creator><author>Sha Jiang</author><pubDate>Thu, 12 Oct 2006 03:29:00 GMT</pubDate><guid>http://www.blogjava.net/jiangshachina/archive/2006/10/12/63436.html</guid><wfw:comment>http://www.blogjava.net/jiangshachina/comments/63436.html</wfw:comment><comments>http://www.blogjava.net/jiangshachina/archive/2006/10/12/63436.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/jiangshachina/comments/commentRss/63436.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiangshachina/services/trackbacks/63436.html</trackback:ping><description><![CDATA[<div align="center">
<font size="4">
<strong><span style="font-size: 14pt;">Eclipse Weed</span></strong></font><br />
</div>
<font size="2">在使用Eclipse的过程中一些小知识的收集，文中的所有描述均在Eclipse3.2环境下。(2006.11.13</font>
<font size="2">最后更新</font>
<font size="2">)<br />
<br />
</font>
<font style="font-weight: bold;" size="3">Eclipse曾经使用过的Workspace的列表</font>
<font size="3">
</font>
<font size="2">
<br />
</font>
<font size="2">文件<span style="color: rgb(0, 0, 255);">eclipse\configuration\.settings\org.eclipse.ui.ide.prefs</span>的<span style="color: rgb(0, 0, 255);">RECENT_WORKSPACES</span>参数记录了该eclipse曾经使用过的工作区(它们的全路径)。<font color="#0000ff">MAX_RECENT_WORKSPACES</font>参数设置了需要被记录的工作区的最多个数(默认值为5)。这些路径的列表会显示在<font color="#0000ff"><font color="#000000">主菜单</font>File--&gt;Switch Workspace...--&gt;Workspace Lanucher</font>中的Workspace下拉列表框内。<br />
<br />
<font size="3"><strong>在启动时使用指定的工作区</strong></font><br />
<font color="#0000ff">eclipse.exe -data <em>Workspace_Full_Path</em></font><br />
注意：使用这种方法使用的工作区不会记录到</font>
<font size="2">
<span style="color: rgb(0, 0, 255);">org.eclipse.ui.ide.prefs</span>
</font>
<font size="2">(见上一主题)中。<br />
这可能是因为在启动时已经明确了工作区，也就不需要在</font>
<font size="2">
<font color="#0000ff">Workspace Lanucher</font>
</font>
<font size="2">选择了，故Eclipse不将该信息记录到配置文件中。<br />
<br />
<font size="3"><strong>Format多个文件</strong></font><br />
这一点其实很简单，<font color="#0000ff">右键点击需要被格式化的文件(或它所在的目录)--&gt;Source--&gt;Format</font>，即可。<br />
注意：<br />
[1]由于该操作没有&#8220;后悔药&#8221;(即不能做undo)，所以在做之前要谨慎。<br />
[2]如果是右键点击某个目录，那么该操作只能影响该目录当前路径下的文件，它子目录中的文件不会被格式化。<br />
<br />
<strong><font size="3">配置外部工具(External Tools)</font></strong><br />
<font size="2">根据Eclipse的帮助可以知道配置外部工具的一般方法（请见<a href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-exttools-running.htm">Eclipse3.2帮助</a>）。但对于配置某个特定的外部工具还需要区别对待。</font><font color="#0000ff" size="2"><em>JDK</em>/bin</font><font size="2">中自带的</font><font color="#0000ff" size="2">javap.exe</font><font size="2">可以分解class文件，帮助我们理解程序的执行过程，是一个十分有用的工具。下面就以把</font><font color="#0000ff" size="2">javap.exe</font><font size="2">工具配置为外部工具作为例子进行讲述。<br />
假设有目录结构：<br />
</font></font>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;">
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->
<font size="2">
<font size="2">
<font size="2">
<span style="color: rgb(0, 0, 0);">Test<br />
&nbsp;|--src<br />
&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;|--test<br />
&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--Test.java<br />
&nbsp;|<br />
&nbsp;|--bin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--test<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--Test.class</span>
</font>
</font>
</font>
</div>
<font size="2">
<font size="2">
<font size="2">Test是Eclipse的Java工程；src是源代码目录，其中有源代码test/Test.java文件；bin是输出目录，其中有test/Test.java被编译后生成的test/Test.calss文件。<br />
如果我们仅仅在cmd窗口（而非Eclsipe环境中）使用javap.exe，可以在任何目录下执行如下形式的命令行（前提是已经设置了JAVA_HOME环境变量）：</font>
<font color="#0000ff" size="2">javap -classpath <em>Workspace_Path</em>\Test\bin -c test.Test</font>
<br />
<strong>配置外部工具的步骤：</strong>
<br />
[1]通过主菜单<font color="#006400">Run--&gt;External Tools--&gt;</font><font size="2"><font color="#006400">External Tools...</font>进入外部工具配置向导。<br />
[2]选择<font color="#006400">Program</font>项，并按左上角的新建(<font color="#006400">New Launch Configuration</font>)按钮显示配置对话框。<br />
[3]在<font color="#006400">Name</font>文本框中输入这个External Tool的名称，本处写<font color="#006400">javap</font>。<br />
[4]在<font color="#006400">Location</font>中填入<font color="#0000ff">javap.exe</font>的路径。</font><font size="2">因为<font color="#0000ff">java.exe</font>是工作区之外的程序，所以</font><font size="2">可以通过<font color="#006400">Browse File System...</font>按钮进行选择。<br />
[5]<font color="#006400">Working Directory</font>文本框保持为空。<br />
[6]<font color="#006400">Arguments</font>中要填入执行<font color="#0000ff">javap</font>命令时所需要的参数，这个参数就是前述命令行中的</font><font size="2"><font color="#0000ff">-classpath <em>Workspace_Path</em>\Test\bin -c test.Test</font></font><font size="2">。但我们要使该工具有通用的使用，就不可能将这个参数&#8220;写死&#8221;了。所以需要使用一些变量(Variable)来代替具体的路径。点击按钮<font color="#006400">Variables...</font>可以看到所有的变量，我们需要使用</font><font size="2">workspace_loc，</font><font size="2">project_name和</font><font size="2">java_type_name。最终的完全参数如下所示：</font><br />
<font size="2"><font color="#0000ff">-classpath ${workspace_loc}/${project_name}/bin -c ${java_type_name}</font><br />
</font><font size="2">[7]点击</font><font size="2"><font color="#006400">Apply</font>之后，就可以在工具栏的外部工具按钮(带一把红色小锁的Run图标)中发现一个名为<font color="#0000ff">j<font color="#006400">avap</font></font>的外部工具被添加进去了。</font><font size="2"><br />
[8]选择某一个Java文件，然后点击工具栏上的外部工具按钮，即可对这个Java文件对应的class文件进行分解了。分解信息会显示在控制台中。<br />
</font><font size="2"><strong>注意：</strong>细心的朋友肯定可以发现，上述方法有十分严重的局限性：class文件必须在bin目录下。</font><font size="2">其实对于设置外部工具的确切方法我没有完全弄清楚，主要是不懂各个Variable的确切含义，以及它们的组合规律。</font><font size="2"><br />
<strong>又：</strong><br />
前面已经提到，前述的将<font color="#0000ff">javap.exe</font>配置为外部工具的方法并不很好。关键在于<font color="#006400">Arguments</font>设置的不好，以至于这种方法缺乏足够的弹性。现在我们做一些改进：<br />
将</font></font>
</font>
<font size="2">
<font size="2">
<font size="2">
<font color="#0000ff">-classpath ${workspace_loc}/${project_name}/bin -c ${java_type_name}</font>
</font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">修改为<font color="#0000ff">-classpath ${folder_prompt} -c ${java_type_name}</font>。<br />
在这种情况下使用外部工具<font color="#006400">javap</font>，我们需要先<strong><font color="#000000">选中一个Java文件(不能是它的class文件)</font></strong>，然后再<font color="#000000"><strong>运行外部工具javap</strong></font>。运行<font color="#006400">javap</font>时，会出现一个<strong><font color="#000000">路径选择对话框</font></strong>，请选择到<font color="#000000"><strong>class文件(包括它的包路径)所在的根目录</strong></font>。则在此处，这个路径就是</font>
</font>
</font>
<font size="2">
<font size="2">
<font color="#0000ff" size="2">
<em>Workspace_Path</em>\Test\bin</font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">(而不是</font>
</font>
</font>
<font size="2">
<font size="2">
<font color="#0000ff" size="2">
<em>Workspace_Path</em>\Test\bin\Test</font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">)</font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">。<br />
注意：这种方法的自由度已经大大提高，但似乎仍然不太理想。因为我们不仅要选择一个Java文件，还需要选择一个相当于classpath的路径。所以该问题仍然需要继续关注...</font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">
<br />
<font size="3">
<strong>
<br />
使用Templat</strong>
</font>
<br />
主菜单<font color="#006400">Preferences...--&gt;Java--&gt;Editor--&gt;Templates</font>，在<font color="#006400">Templates</font>中可以看到一些已创建的模板，均都包含4部分：<br />
Name：模板的名称<br />
Context：模板使用的环境<br />
Description：对该模板功能的简单描述<br />
Auto Insert：(目前还不懂^_^)<br />
在<font color="#006400">Preview</font>文本域中可以看到该模板的通用内容。下面以<strong>foreach模板</strong>为例进行讲述。<br />
Name：foreach，即Enhanced for-Loop，是JDK5.0的新特性之一。<br />
Context：java，即在进行Java编码时使用<br />
Description：iterate over an array or Iterable，即遍历一个数组或一个实现了Iterable接口的对象。<br />
Auto Insert：(无内容)<br />
Preview的内容如下：<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;(${iterable_type}&nbsp;${iterable_element}&nbsp;:&nbsp;${iterable})&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;${cursor}<br />
}</span></div>
Preview中的内容，其实也就是该模板功能的实现方式。它指示了当使用这个模板时，应该如何生成代码。</font>
</font>
</font>
<font size="2">
<strong>我目前还不知道${}通用元素的使用方法，主要是不知道所有的可被使用的${}通用元素及其意义。</strong>不过根据这些通用元素的名字，我们仍然能够猜测到它的意义：</font>
<font color="#0000ff" size="2">${iterable_type}</font>
<font size="2">，迭代器中包含的元素的类型；</font>
<font size="2">
<font>
<font>
<span style="color: rgb(0, 0, 0);">
<font color="#0000ff">${iterable_element}</font>，声明的一个迭代器中元素的引用变量<font color="#000000">；</font></span>
</font>
</font>
</font>
<font>
<font>
<font>
<font size="2">
<font size="2">
<font size="2">
<span style="color: rgb(0, 0, 0);">
<font color="#0000ff">${iterable}</font>，迭代器对象本身的引用变量；</span>
</font>
</font>
</font>
</font>
</font>
</font>
<font>
<font>
<font>
<font size="2">
<font size="2">
<font size="2">
<span style="color: rgb(0, 0, 0);">
<font color="#0000ff">${cursor}</font>，光标的位置。</span>
</font>
</font>
</font>
</font>
</font>
</font>
<br />
<font size="2">
<font size="2">
<font size="2">
<strong>使用foreach模板：</strong>编辑Java源文件，先写入<font color="#0000ff">foreach</font>，然后再接着使用组合快捷键<font color="#0000ff">Alt+/</font>(使用Content Assist，即内容提示或所谓的智能感知)，此时就会出现foreach模板的提示，单击该提示即可。<br />
<strong>创建模板</strong>，关键也是要弄清楚通用元素的使用方法。但对于不太复杂的模板，也可以不使用/少使用通用元素。不使用通用元素，会使模板的通用性差些。<br />
<br />
<font size="3"><strong><font color="#000000">设置多个Source与Output目录</font></strong></font><br />
通过工程<font color="#006400">Properties--&gt;Java Build Path--&gt;Source<font color="#000000">，可以看到该工程</font></font>的默认Output目录和所有Source目录。<br />
可以通过&#8220;Add Folder...&#8221;或&#8220;Link Folder...&#8221;为工程增加Source目录。<br />
打开已存在的Source目录的树，可以发现<font color="#006400">Output folder</font>，一般它的值为<font color="#006400">Default output folder</font>。选中并编辑它，就可以为这个Source目录选择Output目录了。<br />
<strong>最直接的方法</strong>：<font color="#006400"><font color="#000000">编辑工程根目录下的</font>.classpath</font>文件，在该文件中加入如下形式的语句：<br />
<font color="#0000ff">&lt;classpathentry kind="src" path="<em>源文件目录</em>" output="<em>Output目录</em>"/&gt;</font><br />
即，增加一个Source目录，并为它设置一个Output目录。<br />
工程的默认Output目录的配置语句的形式如下：<br />
<font color="#0000ff">&lt;classpathentry kind="output" path="</font></font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">
<font color="#0000ff">
<em>Output目录</em>
</font>
</font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">
<font color="#0000ff">"/&gt;</font>
<br />
即，它不需要对应特定的源文件目录，工程的所有源文件目录都与它关联。<br />
<br />
<font size="3"><strong>指定Eclipse启动画面(Splash)</strong></font><br />
<font color="#0000ff">eclipse.exe -vmargs -Dosgi.splashLocation=<em>Your_Splash_Path</em></font><br />
</font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">
<font color="#0000ff">
<em>Your_Splash_Path</em>
</font>
</font>
</font>
</font>
<font size="2">
<font size="2">
<font size="2">就是所指定的启动画面的路径，必须是一张<strong>bmp格式的图片</strong>。<br />
<br />
<font size="3"><strong>为什么Eclipse能够编译出不同版本的class文件？</strong></font><br />
右键点击<font color="#006400">Project--&gt;Java Compiler--&gt;JDK Compilance--&gt;Compilance Level</font>，在这个下拉列表框中可以选择不同的编译级别，目前包括1.3，1.4，5.0和6.0。<br />
Eclipse并不使用当前系统中安装的JDK(JRE)中的编译器(javac)编译工程源代码，而是使用JDT中的编译工具来进行。这也就能够解释，为什么在系统中只安装了JDK1.4.2，但Eclipse仍然能够编译出5.0或6.0的class文件。<br />
虽然Eclipse可以为每个工程选择不同的编译级别，且该编译行为与JDK中的javac无关，但在Eclipse中运行class所需要的JRE却必须是系统中已经安装了的。可以在主菜单<font color="#006400">Window--&gt;Preferences--&gt;Java--&gt;Installed JREs</font>中添加或选择不同的JRE。<br />
<br />
updating...</font>
</font>
</font>
<img src ="http://www.blogjava.net/jiangshachina/aggbug/63436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiangshachina/" target="_blank">Sha Jiang</a> 2006-10-12 11:29 <a href="http://www.blogjava.net/jiangshachina/archive/2006/10/12/63436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse快捷键(摘)</title><link>http://www.blogjava.net/jiangshachina/archive/2006/08/11/63034.html</link><dc:creator>Sha Jiang</dc:creator><author>Sha Jiang</author><pubDate>Fri, 11 Aug 2006 08:30:00 GMT</pubDate><guid>http://www.blogjava.net/jiangshachina/archive/2006/08/11/63034.html</guid><wfw:comment>http://www.blogjava.net/jiangshachina/comments/63034.html</wfw:comment><comments>http://www.blogjava.net/jiangshachina/archive/2006/08/11/63034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiangshachina/comments/commentRss/63034.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiangshachina/services/trackbacks/63034.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Eclipse提供了丰富的快捷键，使用这些快捷键可以极大地提高操作效率。掌握部分常用的快捷键，是掌握Eclipse的一个必然要求。<br>本文并不是Eclipe全部快捷键的列表，而只列举一些本人用过或认为应该学会使用的快捷键。不断更新中...&nbsp;&nbsp;<a href='http://www.blogjava.net/jiangshachina/archive/2006/08/11/63034.html'>阅读全文</a><img src ="http://www.blogjava.net/jiangshachina/aggbug/63034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiangshachina/" target="_blank">Sha Jiang</a> 2006-08-11 16:30 <a href="http://www.blogjava.net/jiangshachina/archive/2006/08/11/63034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>