您的位置:首页 > 产品设计 > UI/UE

读源码学习equinox启动参数一

2008-01-08 22:52 483 查看

eclipse 3.3使用的是遵循 OSGi 标准的 equinox 实现。
equinox在启动的时候,在处理参数的时候分为几个阶段。
这里首先介绍第一个阶段的三个参数:

1、eclipse.startTime

启动时间,默认取系统的时间。

2、osgi.noShutdown

PROP_NOSHUTDOWN 对应的值就是 osgi.noShutdown

如果值为"true",当eclipse应用程序停止时,Java虚拟机并不退出。这在eclipse应用停止后检查OSGi框架非常有帮助。默认的值为"true"。

3、osgi.compatibility.bootdelegation

OSGI_COMPATIBILITY_BOOTDELEGATION 对应的值是 osgi.compatibility.bootdelegation

如果该参数值为"true",当一个类或资源查找不到时,类加载器会启动父类加载器进行最后的查找。(equinox类加载机制在后面会特别的介绍)
默认的值为"false"。

这些参数被保存在FrameworkProperties.java类中,这个类中的方法全都是静态方法,被用来保存全局的属性.

另外,还有一个非常有意思的参数,经常看到但从来没关注过 :)
在查看源代码的时候,有一个标识:$NON-NLS-1$ 作为注释出现在某些语句后面
在网上查了一下,解释如下:

The string $NON-NLS-1$ is a hint for both the compiler and the Externalization wizard that the first character string on this line is a tag or keyword of some sort and should not be localized. 也就是说$NON-NLS-1$表明本行的第一个string型变量是一个标签或者关键字,不需要被本地化。

部分代码如下:

if (FrameworkProperties.getProperty("eclipse.startTime") == null) //$NON-NLS-1$
FrameworkProperties.setProperty("eclipse.startTime", Long.toString(System.currentTimeMillis())); //$NON-NLS-1$
if (FrameworkProperties.getProperty(PROP_NOSHUTDOWN) == null)
FrameworkProperties.setProperty(PROP_NOSHUTDOWN, "true"); //$NON-NLS-1$
if (FrameworkProperties.getProperty(Constants.OSGI_COMPATIBILITY_BOOTDELEGATION) == null)
FrameworkProperties.setProperty(Constants.OSGI_COMPATIBILITY_BOOTDELEGATION, "false"); //$NON-NLS-1$



全部代码:

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/core/runtime/adaptor/EclipseStarter.java?revision=1.155&view=markup
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: