EclipseWeed

Eclipse曾经使用过的Workspace的列表

文件eclipse/configuration/.settings/org.eclipse.ui.ide.prefs的 RECENT_WORKSPACES参数记录了该eclipse曾经使用过的工作区(它们的全路径)。 MAX_RECENT_WORKSPACES参数设置了需要被记录的工作区的最多个数(默认值为5) 。这些路径的列表会显示在主菜单File–>Switch Workspace…– >Workspace Lanucher中的Workspace下拉列表框内。

在启动时使用指定的工作区

eclipse.exe -data Workspace_Full_Path

注意:使用这种方法使用的工作区不会记录到 org.eclipse.ui.ide.prefs ( 见上一主题)中。

这可能是因为在启动时已经明确了工作区,也就不需要在 Workspace Lanucher 选择了,故Eclipse不将该信息记录到配置文件中。

Format多个文件

这一点其实很简单,右键点击需要被格式化的文件(或它所在的目录)– >Source–>Format,即可。

注意:

[1]由于该操作没有“后悔药”(即不能做undo),所以在做之前要谨慎。

[2]如果是右键点击某个目录,那么该操作只能影响该目录当前路径下的文件 ,它子目录中的文件不会被格式化。

配置外部工具(External Tools)

根据Eclipse的帮助可以知道配置外部工具的一般方法(请见Eclipse3.2帮助 )。但对于配置某个特定的外部工具还需要区别对待。JDK/bin中自带的 javap.exe可以分解class文件,帮助我们理解程序的执行过程,是一个十分有用 的工具。下面就以把javap.exe工具配置为外部工具作为例子进行讲述。

假设有目录结构:

Test

|–src

|  |–test

|    |–Test.java

|

|–bin

|–test

|–Test.class Test是Eclipse的Java工程;src是源代码目录,其中有源代码 test/Test.java文件;bin是输出目录,其中有test/Test.java被编译后生成的 test/Test.calss文件。

如果我们仅仅在cmd窗口(而非Eclsipe环境中)使用javap.exe,可以在任何 目录下执行如下形式的命令行(前提是已经设置了JAVA_HOME环境变量):

javap -classpath Workspace_Path/Test/bin -c test.Test

配置外部工具的步骤:

[1]通过主菜单Run–>External Tools–>External Tools…进入外部 工具配置向导。

[2]选择Program项,并按左上角的新建(New Launch Configuration)按钮显示 配置对话框。

[3]在Name文本框中输入这个External Tool的名称,本处写javap。

[4]在Location中填入javap.exe的路径。因为java.exe是工作区之外的程序, 所以可以通过Browse File System…按钮进行选择。

[5]Working DirecTory文本框保持为空。

[6]Arguments中要填入执行javap命令时所需要的参数,这个参数就是前述命 令行中的-classpath Workspace_Path/Test/bin -c test.Test。但我们要使该工具 有通用的使用,就不可能将这个参数“写死”了。所以需要使用一些变量 (Variable)来代替具体的路径。点击按钮Variables…可以看到所有的变量,我 们需要使用workspace_loc,project_name和java_type_name。最终的完全参数如 下所示:

-classpath ${workspace_loc}/${project_name}/bin -c ${java_type_name}

[7]点击Apply之后,就可以在工具栏的外部工具按钮(带一把红色小锁的Run图 标)中发现一个名为javap的外部工具被添加进去了。

[8]选择某一个Java文件,然后点击工具栏上的外部工具按钮,即可对这个 Java文件对应的class文件进行分解了。分解信息会显示在控制台中。

注意:细心的朋友肯定可以发现,上述方法有十分严重的局限性:class文件 必须在bin目录下。其实对于设置外部工具的确切方法我没有完全弄清楚,主要是 不懂各个Variable的确切含义,以及它们的组合规律。

又:

前面已经提到,前述的将javap.exe配置为外部工具的方法并不很好。关键在 于Arguments设置的不好,以至于这种方法缺乏足够的弹性。现在我们做一些改进 :

将 -classpath ${workspace_loc}/${project_name}/bin -c ${java_type_name} 修改为-classpath ${folder_prompt} -c ${java_type_name}。

在这种情况下使用外部工具javap,我们需要先选中一个Java文件(不能是它的 class文件),然后再运行外部工具javap。运行javap时,会出现一个路径选择对 话框,请选择到class文件(包括它的包路径)所在的根目录。则在此处,这个路径就是 Workspace_Path/Test/bin (而不是 Workspace_Path/Test/bin/Test ) 。

注意:这种方法的自由度已经大大提高,但似乎仍然不太理想。因为我们不仅 要选择一个Java文件,还需要选择一个相当于classpath的路径。所以该问题仍然 需要继续关注…

使用Templat

主菜单Preferences…–>Java–>EdiTor–>Templates,在 Templates中可以看到一些已创建的模板,均都包含4部分:

Name:模板的名称

Context:模板使用的环境

Description:对该模板功能的简单描述

Auto Insert:(目前还不懂^_^)

在Preview文本域中可以看到该模板的通用内容。下面以foreach模板为例进行 讲述。

Name:foreach,即Enhanced for-Loop,是JDK5.0的新特性之一。

Context:java,即在进行Java编码时使用

Description:iterate over an array or Iterable,即遍历一个数组或一个 实现了Iterable接口的对象。

Auto Insert:(无内容)

Preview的内容如下:

for (${iterable_type} ${iterable_element} : ${iterable}) {   ${cursor}}

Preview中的内容,其实也就是该模板功能的实现方式。它指示了当使用这个 模板时,应该如何生成代码。 我目前还不知道${}通用元素的使用方法,主要是 不知道所有的可被使用的${}通用元素及其意义。不过根据这些通用元素的名字, 我们仍然能够猜测到它的意义: ${iterable_type} ,迭代器中包含的元素的类 型; ${iterable_element},声明的一个迭代器中元素的引用变量; ${iterable},迭代器对象本身的引用变量; ${cursor},光标的位置。

使用foreach模板:编辑Java源文件,先写入foreach,然后再接着使用组合快 捷键Alt+/(使用Content Assist,即内容提示或所谓的智能感知),此时就会出现 foreach模板的提示,单击该提示即可。

创建模板,关键也是要弄清楚通用元素的使用方法。但对于不太复杂的模板, 也可以不使用/少使用通用元素。不使用通用元素,会使模板的通用性差些。

设置多个Source与Output目录

通过工程Properties–>Java Build Path–>Source,可以看到该工程 的默认Output目录和所有Source目录。

可以通过“Add Folder…”或“Link Folder…”为工程增加Source目录。

打开已存在的Source目录的树,可以发现Output folder,一般它的值为 Default output folder。选中并编辑它,就可以为这个Source目录选择Output目 录了。

最直接的方法:编辑工程根目录下的.classpath文件,在该文件中加入如下形 式的语句:

即,增加一个Source目录,并为它设置一个Output目录。

工程的默认Output目录的配置语句的形式如下:

即,它不需要对应特定的源文件目录,工程的所有源文件目录都与它关联。

指定Eclipse启动画面(Splash)

eclipse.exe -vmargs -Dosgi.splashLocation=Your_Splash_Path

Your_Splash_Path 就是所指定的启动画面的路径,必须是一张bmp格式的图片 。

为什么Eclipse能够编译出不同版本的class文件?

右键点击Project–>Java Compiler–>JDK Compilance– >Compilance Level,在这个下拉列表框中可以选择不同的编译级别,目前包 括1.3,1.4,5.0和6.0。

Eclipse并不使用当前系统中安装的JDK(JRE)中的编译器(javac)编译工程源代 码,而是使用JDT中的编译工具来进行。这也就能够解释,为什么在系统中只安装 了JDK1.4.2,但Eclipse仍然能够编译出5.0或6.0的class文件。

虽然Eclipse可以为每个工程选择不同的编译级别,且该编译行为与JDK中的 javac无关,但在Eclipse中运行class所需要的JRE却必须是系统中已经安装了的 。可以在主菜单Window–>Preferences–>Java–>Installed JREs中添 加或选择不同的JRE。

人的一生是奋斗的一生,人们为了取得成功都在不断地努力着,

EclipseWeed

相关文章:

你感兴趣的文章:

标签云: