读源码学习equinox启动参数一

Eclipse OSGi 启动参数详解
本文详细介绍了Eclipse 3.3中OSGi框架Equinox启动时的第一阶段参数设置,包括启动时间、禁用关闭行为及类加载委托机制等关键配置项,并解释了这些参数的作用。

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值