public class EclipseStarter extends Object
The Eclipse Platform makes heavy use of Java class loaders for loading plug-ins. Even the Eclipse Runtime itself and the OSGi framework need to be loaded by special class loaders. The upshot is that a client program (such as a Java main program, a servlet) cannot reference any part of Eclipse directly. Instead, a client must use this loader class to start the platform, invoking functionality defined in plug-ins, and shutting down the platform when done.
Note that the fields on this class are not API.
Modifier and Type | Field and Description |
---|---|
static boolean |
debug |
static String |
PROP_ADAPTOR |
static String |
PROP_ARCH |
static String |
PROP_BUNDLES |
static String |
PROP_BUNDLES_STARTLEVEL |
static String |
PROP_CHECK_CONFIG |
static String |
PROP_CLEAN |
static String |
PROP_CONSOLE |
static String |
PROP_CONSOLE_CLASS |
static String |
PROP_CONSOLE_LOG |
static String |
PROP_DEBUG |
static String |
PROP_DEV |
static String |
PROP_EXITCODE |
static String |
PROP_EXITDATA |
static String |
PROP_EXTENSIONS |
static String |
PROP_FRAMEWORK |
static String |
PROP_FRAMEWORK_SHAPE |
static String |
PROP_IGNOREAPP |
static String |
PROP_INITIAL_STARTLEVEL |
static String |
PROP_INSTALL_AREA |
static String |
PROP_LOGFILE |
static String |
PROP_NL |
static String |
PROP_NOSHUTDOWN |
static String |
PROP_OS |
static String |
PROP_REFRESH_BUNDLES |
static String |
PROP_SYSPATH |
static String |
PROP_WS |
Constructor and Description |
---|
EclipseStarter() |
Modifier and Type | Method and Description |
---|---|
protected static String |
getSysPath() |
static BundleContext |
getSystemBundleContext()
Returns the context of the system bundle.
|
static boolean |
isRunning()
Returns true if the platform is already running, false otherwise.
|
static void |
main(String[] args)
This is the main to start osgi.
|
static Object |
run(Object argument)
Runs the application for which the platform was started.
|
static Object |
run(String[] args,
Runnable endSplashHandler)
Launches the platform and runs a single application.
|
static void |
setInitialProperties(Map<String,String> initialProperties)
Sets the initial properties for the platform.
|
static void |
shutdown()
Shuts down the Platform.
|
static BundleContext |
startup(String[] args,
Runnable endSplashHandler)
Starts the platform and sets it up to run a single application.
|
public static boolean debug
public static final String PROP_BUNDLES
public static final String PROP_BUNDLES_STARTLEVEL
public static final String PROP_EXTENSIONS
public static final String PROP_INITIAL_STARTLEVEL
public static final String PROP_DEBUG
public static final String PROP_DEV
public static final String PROP_CLEAN
public static final String PROP_CONSOLE
public static final String PROP_CONSOLE_CLASS
public static final String PROP_CHECK_CONFIG
public static final String PROP_OS
public static final String PROP_WS
public static final String PROP_NL
public static final String PROP_ARCH
public static final String PROP_ADAPTOR
public static final String PROP_SYSPATH
public static final String PROP_LOGFILE
public static final String PROP_FRAMEWORK
public static final String PROP_INSTALL_AREA
public static final String PROP_FRAMEWORK_SHAPE
public static final String PROP_NOSHUTDOWN
public static final String PROP_EXITCODE
public static final String PROP_EXITDATA
public static final String PROP_CONSOLE_LOG
public static final String PROP_IGNOREAPP
public static final String PROP_REFRESH_BUNDLES
public static void main(String[] args) throws Exception
Exception
public static Object run(String[] args, Runnable endSplashHandler) throws Exception
eclipse.application
System property. This convenience method starts
up the platform, runs the indicated application, and then shuts down the
platform. The platform must not be running already.args
- the command line-style arguments used to configure the platformendSplashHandler
- the block of code to run to tear down the splash
screen or null
if no tear down is requiredException
- if anything goes wrongpublic static boolean isRunning()
public static BundleContext startup(String[] args, Runnable endSplashHandler) throws Exception
eclipse.application
System property. The platform must not be running already.
The given runnable (if not null
) is used to tear down the splash screen if required.
args
- the arguments passed to the applicationException
- if anything goes wrongpublic static Object run(Object argument) throws Exception
The given argument is passed to the application being run. If it is null
then the command line arguments used in starting the platform, and not consumed
by the platform code, are passed to the application as a String[]
.
argument
- the argument passed to the application. May be null
Exception
- if anything goes wrongpublic static void shutdown() throws Exception
On return, the Platform will no longer be running (but could be re-launched with another call to startup). If relaunching, care must be taken to reinitialize any System properties which the platform uses (e.g., osgi.instance.area) as some policies in the platform do not allow resetting of such properties on subsequent runs.
Any objects handed out by running Platform, including Platform runnables obtained via getRunnable, will be permanently invalid. The effects of attempting to invoke methods on invalid objects is undefined.
Exception
- if anything goes wrongprotected static String getSysPath()
public static void setInitialProperties(Map<String,String> initialProperties)
run(String[], Runnable)
or
startup(String[], Runnable)
methods for the properties to be used in
a launched instance of the platform.
If the specified properties contains a null value then the key for that value will be cleared from the properties of the platform.
initialProperties
- the initial properties to set for the platform.public static BundleContext getSystemBundleContext()
null
is returned if the platform is not running.SecurityException
- If the caller does not have the
appropriate AdminPermission[system.bundle,CONTEXT]
, and
the Java Runtime Environment supports permissions.
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.