eclispe想必大家都很熟悉了,一般来说,eclipse插件都是安装在plugins目录下。不过这样一来,当安装了许多插件之后,eclipse变的很大,最主要的是不便于更新和治理众多插件。用links方式安装eclipse插件,可以解决这个问题。
以eclipse3.2为例, 现在假设我的eclipse安装目录是D:\eclipse,待安装插件目录是D:\plugin ,我将要安装emf-sdo-runtime和lomboz这两个插件。 先把这两个插件程序全部放在D:\plugin目录里,分别解压。如lomboz3.2.2.zip解压成lomboz3.2.2目录,这个目录包含一个plugins目录,要先在lomboz3.2.2目录中新建一个子目录eclipse,然后把plugins目录移动到刚建立的eclipse目录中,即目录结构要是这样的:D:\plugin\lomboz3.2.2\eclipse\plugins
eclipse 将会到指定的目录下去查找 eclipse\features 目录和eclipse\plugins 目录,看是否有合法的功能部件和(或)插件。也就是说,目标目录必须包含一个 \eclipse 目录。假如找到,附加的功能部件和插件在运行期配置是将是可用的,假如链接文件是在工作区创建之后添加的,附加的功能部件和插件会作为新的配置变更来处理。
其它压缩文件解压后若已经包含eclipse\plugins目录,则不需要建立eclipse目录。
然后在 eclipse安装目录D:\eclipse目录中建立一个子目录links,在links目录中建立一个link文件,比如 lomboz.link,改文件内容为 path=D:/plugin/lomboz3.2.2即这个link文件要对应一个刚解压后的插件目录。
说明:
1. 插件可以分别安装在多个自定义的目录中。
2. 一个自定义目录可以安装多个插件。
3. link文件的文件名及扩展名可以取任意名称,比如ddd.txt,myplugin都可以。
4. link文件中path=插件目录的path路径分隔要用\\或是/
5. 在links目录也可以有多个link文件,每个link文件中的path参数都将生效。
6. 插件目录可以使用相对路径。
7. 可以在links目录中建立一个子目录,转移暂时不用的插件到此子目录中,加快eclipse启动。
8. 假如安装后看不到插件,把eclipse/configuration目录下的所有文件删除(config.ini除外),重启即可。
如果删除configration整个目录,有可能eclipse启动时碰到如下错误:
!SESSION 2013-01-15 17:14:46.952 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_26
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Framework arguments: -product org.eclipse.epp.package.java.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product
!ENTRY org.eclipse.osgi 4 0 2013-01-15 17:14:47.468
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
解决办法:
1. 删掉configration下的其它文件。
2. 新建config.ini 文件, 将以下内容拷贝进去(如下配置适用于3.6)。或者从其它正常的eclipse下拷贝一个config.ini文件,eclipse版本号最后一致。
osgi.splashPath = platform:/base/plugins/org.eclipse.platform
osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
eclipse.product=org.eclipse.sdk.ide
osgi.instance.area.default=@user.home/workspace
eof=eof