Difference between revisions of "Equinox Startup Issues"

From Eclipsepedia

Jump to: navigation, search
(Background)
Line 9: Line 9:
 
This work was previously outlined in [[Equinox Launcher]] and [[Equinox Launcher Plan]] as well as in messages sent to the mailing lists and outlined weekly in the Eclipse Architecture Meeting Minutes. It was first released to the Eclipse SDK builds in the first integration build after Eclipse 3.3 M4. (the integration build from December 19, 2006)
 
This work was previously outlined in [[Equinox Launcher]] and [[Equinox Launcher Plan]] as well as in messages sent to the mailing lists and outlined weekly in the Eclipse Architecture Meeting Minutes. It was first released to the Eclipse SDK builds in the first integration build after Eclipse 3.3 M4. (the integration build from December 19, 2006)
  
===Problems===
+
===Problem: Startup.jar===
 
Clients which scripts which started Eclipse directly from Java (<code>java -jar startup.jar</code>) must now be altered to point to the new JAR location.
 
Clients which scripts which started Eclipse directly from Java (<code>java -jar startup.jar</code>) must now be altered to point to the new JAR location.
  
Line 21: Line 21:
  
 
====Do nothing====
 
====Do nothing====
The story going forward would be that people who have products based on Eclipse and are starting Eclipse via Java directly would have to either modify their scripts to point to the correct launcher JAR or copy the launcher JAR to the Eclipse install root and rename it to be <code>startup.jar</code>.
+
The story going forward would be that people who have products based on Eclipse and are starting Eclipse via Java directly would have to either modify their scripts to point to the correct launcher JAR, rename it to have a name they prefer (without version number), or copy the launcher JAR to the Eclipse install root and rename it to be <code>startup.jar</code>.
 +
 
 +
===Other Issues===
 +
====Running the launcher exe headless and unattended  [RESOLVED]====
 +
The launcher exe could display a dialog and block a headless unattended application.  This has been resolved with [https://bugs.eclipse.org/bugs/show_bug.cgi?id=172685 bug 172685].
 +
====Eclipse.exe does not propagate exit code====
 +
In some cases the launcher exe does not propagate the exit code from java.  This is easily fixed and is tracked by [https://bugs.eclipse.org/bugs/show_bug.cgi?id=173900 bug 173900].
 +
====Running the launcher exe on a machine without a WS====
 +
The eclipse launcher will not run on a machine that does not contain the appropriate window system libraries (ie gtk, motif).  This is not new and was true of the old eclipse launchers as well.
 +
 
 +
There are 2 possible solutions to this:
 +
#Create a console launcher that does not depend on a WS: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=173962 bug 173962]
 +
#Refactor the eclipse launcher to find and load the ws libraries dynamically instead of having them statically linked.
 +
 
 +
====Eclipse.exe does not provide normal console stream [Windows]====
 +
On Windows, The eclipse launcher is linked as a GUI application, and hence does not get the normal console streams.  This also causes us problems with the <code>-console</code> option.  See for example bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=167310 167310] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=168726 168726].
 +
 
 +
The only solution I am aware of is to link as a console application, which would be [https://bugs.eclipse.org/bugs/show_bug.cgi?id=173962 bug 173962].
 +
 
 +
On the other platforms, the console stream problem was caused by eclipse running as 2 processes (eclipse and java).  This should be resolved when launching using JNI invocation to start the java vm.
 +
===Links===
 +
#[[Equinox Launcher]]
 +
#[[Equinox Launcher Plan]]
 +
#[[Splash Screen Improvements]]
 +
#[https://bugs.eclipse.org/bugs/show_bug.cgi?id=173742 Bug 173742]:Please reinstate a unified way to launch using Java
 +
#[https://bugs.eclipse.org/bugs/show_bug.cgi?id=154088 Bug 154088]:[Workbench] [IDE] Improve the launching experience
 +
#[https://bugs.eclipse.org/bugs/show_bug.cgi?id=172685 Bug 172685]: [Launcher] need option to suppress error dialogs
 +
#[https://bugs.eclipse.org/bugs/show_bug.cgi?id=173962 Bug 173962]: [launcher] create a console friendly eclipse.exe
 +
#[https://bugs.eclipse.org/bugs/show_bug.cgi?id=173900 bug 173900]: [Launcher] Launcher should propagate java return code

Revision as of 13:03, 13 February 2007

Contents

Overview

As per bug 173742, some users are having issues when surrounding the move of the startup.jar from the root of the Eclipse install to the plugins/ directory. The purpose of this page is to outline the reasons for the move, the problems that people are having, and proposed solutions to these problems.

Background

One of the major downfalls of the Eclipse Update story is that it is not completely updateable; users are not able to use update manager to update between major releases. This was because the startup.jar was not a real bundle and not versioned. By moving the startup.jar code to the plugins/ directory and making it a bundle, the update manager can now update this code in future releases of Eclipse.

The Equinox launchers were also designed to address the startup experience with respect to the splash screen. Bug 154088 was the plan item for this work. See also the wiki page on Splash Screen Improvements.

This work was previously outlined in Equinox Launcher and Equinox Launcher Plan as well as in messages sent to the mailing lists and outlined weekly in the Eclipse Architecture Meeting Minutes. It was first released to the Eclipse SDK builds in the first integration build after Eclipse 3.3 M4. (the integration build from December 19, 2006)

Problem: Startup.jar

Clients which scripts which started Eclipse directly from Java (java -jar startup.jar) must now be altered to point to the new JAR location.

Proposed Solutions

Bring back the old startup.jar

Revert from having a launcher bundle to having a startup.jar in the install root.

Create a new startup.jar

Write a new startup.jar which looks for the launcher bundle in the plugins/ directory and then calls it.

Do nothing

The story going forward would be that people who have products based on Eclipse and are starting Eclipse via Java directly would have to either modify their scripts to point to the correct launcher JAR, rename it to have a name they prefer (without version number), or copy the launcher JAR to the Eclipse install root and rename it to be startup.jar.

Other Issues

Running the launcher exe headless and unattended [RESOLVED]

The launcher exe could display a dialog and block a headless unattended application. This has been resolved with bug 172685.

Eclipse.exe does not propagate exit code

In some cases the launcher exe does not propagate the exit code from java. This is easily fixed and is tracked by bug 173900.

Running the launcher exe on a machine without a WS

The eclipse launcher will not run on a machine that does not contain the appropriate window system libraries (ie gtk, motif). This is not new and was true of the old eclipse launchers as well.

There are 2 possible solutions to this:

  1. Create a console launcher that does not depend on a WS: bug 173962
  2. Refactor the eclipse launcher to find and load the ws libraries dynamically instead of having them statically linked.

Eclipse.exe does not provide normal console stream [Windows]

On Windows, The eclipse launcher is linked as a GUI application, and hence does not get the normal console streams. This also causes us problems with the -console option. See for example bugs 167310 and 168726.

The only solution I am aware of is to link as a console application, which would be bug 173962.

On the other platforms, the console stream problem was caused by eclipse running as 2 processes (eclipse and java). This should be resolved when launching using JNI invocation to start the java vm.

Links

  1. Equinox Launcher
  2. Equinox Launcher Plan
  3. Splash Screen Improvements
  4. Bug 173742:Please reinstate a unified way to launch using Java
  5. Bug 154088:[Workbench] [IDE] Improve the launching experience
  6. Bug 172685: [Launcher] need option to suppress error dialogs
  7. Bug 173962: [launcher] create a console friendly eclipse.exe
  8. bug 173900: [Launcher] Launcher should propagate java return code