Package org.eclipse.equinox.app

# Interface IApplication

All Known Implementing Classes:
  `AntRunner`

public interface IApplication
Bootstrap type for an application. An IApplication represent executable entry points into an application. An IApplication can be configured into the Platform's `org.eclipse.core.runtime.applications` extension-point.

Clients may implement this interface.

Since:
  1.0

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Integer`
`EXIT_OK`
Exit object indicating normal termination
`static final Integer`
`EXIT_RELAUNCH`
Exit object requesting that the command passed back be executed.
`static final Integer`
`EXIT_RESTART`
Exit object requesting platform restart

## Method Summary

Modifier and Type
Method
Description
`Object`
`start(IApplicationContext context)`
Starts this application with the given context and returns a result.
`void`
`stop()`
Forces this running application to exit.

## Field Details

### EXIT_OK

static final Integer EXIT_OK
Exit object indicating normal termination

### EXIT_RESTART

static final Integer EXIT_RESTART
Exit object requesting platform restart

### EXIT_RELAUNCH

static final Integer EXIT_RELAUNCH
Exit object requesting that the command passed back be executed. Typically this is used to relaunch Eclipse with different command line arguments. When the executable is relaunched the command line will be retrieved from the `eclipse.exitdata` system property.

## Method Details

### start

Object start(IApplicationContext context) throws Exception
Starts this application with the given context and returns a result. The content of the context is unchecked and should conform to the expectations of the application being invoked. This method can return the value `IApplicationContext.EXIT_ASYNC_RESULT` if the application will deliver its results asynchronously with the `IApplicationContext.setResult(Object, IApplication)` method; otherwise this method must not exit until the application is finished and is ready to exit.

Applications can return any object they like. If an `Integer` is returned it is treated as the program exit code if Eclipse is exiting.

Note: This method is called by the platform; it is not intended to be called directly by clients.

Parameters:
  `context` - the application context to pass to the application
Returns:
  the return value of the application
Throws:
  `Exception` - if there is a problem running this application.
See Also:
  - `EXIT_OK`
  - `EXIT_RESTART`
  - `EXIT_RELAUNCH`
  - `IApplicationContext.EXIT_ASYNC_RESULT`

### stop

void stop()
Forces this running application to exit. This method should wait until the running application is ready to exit. The `start(IApplicationContext)` should already have exited or should exit very soon after this method exits

This method is only called to force an application to exit. This method will not be called if an application exits normally from the `start(IApplicationContext)` method.

Note: This method is called by the platform; it is not intended to be called directly by clients.