 <p>If you are not locked in to using SWT, you could use the e(fx)clipse e4 renderer for JavaFX instead.</p> <p>e(fx)clipse has more possibilities to control the lifecycle of the application. For example you can return a <code>Boolean</code> from <code>@PostContextCreate</code> to signal whether you want to continue the startup or not. You will not be able to use <code>EPartService</code> here though, but you can roll your own login dialog using dependency injection as greg-449 has described it in his answer.</p> <pre class="lang-java prettyprint-override"><code>public class StartupHook { @PostContextCreate public Boolean startUp(IEclipseContext context) { // show your login dialog LoginManager loginManager = ContextInjectionFactory.make(LoginManager.class, context); if(!loginManager.askUserToLogin()) { return Boolean.FALSE; } return Boolean.TRUE; } } </code></pre> <p>(You can also restart the application. Form more details see <a href="http://tomsondev.bestsolution.at/2014/11/03/efxclipse-1-1-new-features-api-to-restart-your-e4-app-on-startup/" rel="nofollow">http://tomsondev.bestsolution.at/2014/11/03/efxclipse-1-1-new-features-api-to-restart-your-e4-app-on-startup/</a>). </p>