读源码学习equinox启动参数二

 

 

equinox启动第二阶段的参数有三个:

1、PROFILE 默认的是true,这个参数值是固定的,没有提供更改的方法和途径。

2、STARTUP默认的是false,这个参数对应的是 启动选项osgi.debug 。
如果设置了启动选项 osgi.debug ,equinox启动时会在user.dir 也就是eclipse安装路径下装载 .options文件。

可以在.options文件中修改一些参数的默认值,如果设置 org.eclipse.osgi/profile/startup = true
会在控制台显示所有启动插件时的信息。关于.options文件请见下面的详细说明。


3、eclipse.ignoreApp
默认的值是false.
如果在启动参数中 "没有" 设置 eclipse.ignoreApp = true ,那么会运行EclipseAppLauncher.java。
关于EclipseAppLauncher 后面的文章会提到。


4、关于.options文件

eclipse带了一个.options文件,可以在eclipse的plugins目录下的 org.eclipse.osgi_$version.jar 中找到。

一个.options文件内容如下:



#### Debugging options for org.eclipse.osgi

# Turn on general debugging for org.eclipse.osgi
org.eclipse.osgi/debug
= false
# Prints out class loading debug information
org.eclipse.osgi/debug/loader
= false
# Prints out event (FrameworkEvent/BundleEvent/ServiceEvent) and listener debug information
org.eclipse.osgi/debug/events
= false
# Prints out OSGi service debug information (registration/getting/ungetting etc.)
org.eclipse.osgi/debug/services
= false
# Prints out bundle manifest parsing debug information
org.eclipse.osgi/debug/manifest
= false
# Prints out LDAP filter debug information
org.eclipse.osgi/debug/filter
= false
# Prints out security (PermissionAdmin service) debug information
org.eclipse.osgi/debug/security
= false
# Prints out start level service debug information
org.eclipse.osgi/debug/startlevel
= false
# Prints out package admin service debug information
org.eclipse.osgi/debug/packageadmin
= false
# Prints out timing information for bundle activation
org.eclipse.osgi/debug/bundleTime
= false
# Debug the loading of message bundles
org.eclipse.osgi/debug/messageBundles
= false

# Eclipse adaptor options
org.eclipse.osgi/eclipseadaptor/debug 
=  false
org.eclipse.osgi/eclipseadaptor/debug/location 
=  false
org.eclipse.osgi/eclipseadaptor/debug/platformadmin
= false
org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver
= false
org.eclipse.osgi/eclipseadaptor/converter/debug 
=  false

### OSGi resolver options
# Turns on debugging for the resolver
org.eclipse.osgi/resolver/debug 
=  false
# Prints out wiring information after the resolver has completed the resolve process
org.eclipse.osgi/resolver/wiring 
=  false
# Prints out Import-Package information
org.eclipse.osgi/resolver/imports 
=  false
# Prints out Require-Bundle information
org.eclipse.osgi/resolver/requires 
=  false
# Prints out package grouping information form the 
" uses "  clause
org.eclipse.osgi/resolver/grouping 
=  false
# Prints out cycle information
org.eclipse.osgi/resolver/cycles 
=  false
# Prints out Eclipse-GenericRequire information
org.eclipse.osgi/resolver/generics 
=  false

#### Profile settings
org.eclipse.osgi/profile/startup 
=  false
org.eclipse.osgi/profile/benchmark 
=  false
org.eclipse.osgi/profile/debug 
=  false

# Override the default implemenation 
org.eclipse.osgi/profile/impl 
=  org.eclipse.osgi.internal.profile.DefaultProfileLogger

# Append all profile messages to the filename specified
org.eclipse.osgi/defaultprofile/logfilename 
=  

# Output all profile log messages synchronously to the jvm console.
# By default
,  all log messages are cached until the log buffer is
# requested.
org.eclipse.osgi/defaultprofile/logsynchronously 
=  false

# Specify the size of the default profile implementation log buffer.
org.eclipse.osgi/defaultprofile/buffersize 
=   256

#### Monitoring settings
# monitor class loading
org.eclipse.osgi/monitor/classes
= false

# monitor bundle activation
org.eclipse.osgi/monitor/activation
= false

# monitor resource bundle (*.properties) loading
org.eclipse.osgi/monitor/resources
= false


#### Trace settings
# trace class loading - snapshot the execution stack when a class is loaded
org.eclipse.osgi/trace/classLoading
= false

# trace location - file in which execution traces are written
org.eclipse.osgi/trace/filename
= runtime.traces

# trace filters - Java properties file defining which classes should 
# be traced (if trace/classLoading is true)
# File format:
# plugins
= <comma separated list of plugins whose classes to trace>
# packages
= <comma separated list of package prefixes of classes to trace>
# Note that there may be many 'plugins' and 'packages' lines in one file.
org.eclipse.osgi/trace/filters
= trace.properties

# trace bundle activation - snapshot the execution stack when a bundle is activated
org.eclipse.osgi/trace/activation
= false

 

 

5、下面作一个小实验

A.环境准备

a)默认已经安装了Java 1.5以上的开发环境。

b)下载eclipse-equinox-3.3.1.1  http://download.eclipse.org/eclipse/equinox/drops/R-3.3.1.1-200710231652/download.php?dropFile=eclipse-equinox-3.3.1.1.zip 

c) 在C:/下创建目录 osgi-dev,将 org.eclipse.osgi_3.3.1.R33x_v20070828.jar 复制到 C:/osgi-dev 目录中

B.执行过程

a)在命令提示符下执行以下命令:

  
  
  
  
> java -console -jar org.eclipse.osgi_3 .3.1 .R33x_v20070828.jar

几秒钟,osgi>提示符显示出来。

b)在osgi>提示符下执行 ss :

  
  
  
  
osgi>ss

显示:

  
  
  
  
C:osgi-dev>java -console -jar org.eclipse.osgi_3 .3.1 .R33x_v20070828.jar 
    
osgi> ss
     
Framework is launched.
     
id      State       Bundle
0        ACTIVE      org.eclipse.osgi_3 .3.1 .R33x_v20070828
   
osgi>

c)在当前目录下,创建一个文件,文件名为 .options

将上面的.options内容复制到文件中,修改这一句:

org.eclipse.osgi/profile/startup  =  true //  这里修改false 为 true

或者

在.options文件中只保留一句

org.eclipse.osgi/profile/startup  =  true 

 d)再运行

> java -console -jar org.eclipse.osgi_3 .3.1 .R33x_v20070828.jar  -debug

 会看到启动过程中bundle进入和退出的情况,当然这里只有一个,如果很多bundle输出会很壮观的 :)

你可能感兴趣的:(java,eclipse,c,osgi,plugins)