2013-04-25 171 views
2

我有一个RCP应用程序,我已经在3.x中启动,现在我已经软迁移到4.x.Eclipse RCP:无需启动应用程序的命令行参数

我需要为最终用户添加命令行参数选项,例如-version,-help等。因此,当用户在控制台中键入myApp -version时,它不会启动应用程序,只显示版本号。

谢谢!

我在应用程序类尝试了这一点,

public Object start(IApplicationContext context) throws Exception { 
     String[] args = Platform.getCommandLineArgs(); 
     int i = 0; 
     while (i < args.length) 
     { 
      if (args[i].equals("-v")) 
      { 
       System.out.println("Version ABC"); 
       return IApplication.EXIT_OK; 
      } 
      i++; 
     } 

     Display display = PlatformUI.createDisplay(); 
     try { 
      int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); 
      if (returnCode == PlatformUI.RETURN_RESTART) 
       return IApplication.EXIT_RESTART; 
      else 
       return IApplication.EXIT_OK; 
     } finally { 
      display.dispose(); 
     } 

    } 

它不会启动用户界面,但它开始启动画面。有没有一种方法可以在启动屏幕开始之前放置getCommandLineArgs()

SplashHandler尝试:我试图绑定自己的SplashHandler,但我遇到了同样的问题。当我到达SplashHandler的init方法时,带有splash图像的shell已经显示出来了,我认为这个shell是在我的任何一个类可以进行干预之前创建的。

回答

1

我没有看过4.x文档,但它看起来出现,您可以使用start method in IApplication在GUI启动之前处理此问题。

然后做这样的事情在实际开始申请前...

Map args = context.getArguments(); 

String[] parms_ = (String[]) args.get("application.args"); 
List parms = Arrays.asList(parms_); 

if (parms.contains("-version")) { 
    System.out.println("version found"); 
    return IApplication.EXIT_OK; 
} 
+0

嗨感谢您的评论。我只是尝试过,但就像我说的那样,闪屏仍然显示。 – nbz 2013-04-25 15:41:33

+0

是的,启动画面确实显示...不要以为有什么可以做的事情(除非可能不使用启动画面?)。 – 2013-04-25 15:42:27

+0

哈哈感谢,但不幸的是删除启动画面目前不是一个选项 – nbz 2013-04-25 15:43:37

1

闪屏是由发射器(典型的eclipse.exe或类似)之前 Java虚拟机在陈述显示所有。启动画面基于configuration/config.ini中的条目osgi.splashPath=platform\:/base/plugins/...显示。

你唯一的出路就是

  1. remove从config.ini
  2. 该条目表明您拥有IApplication.start(...)

闪屏请注意,闪屏将“延迟”相比今天,SplashHandler将不会实例化和自动调用(虽然你可以自己做)。

+0

所以在这种情况下Java的splashscreen可以使用 - http://docs.oracle.com/javase/tutorial/uiswing/misc/splashscreen.html – nbz 2013-04-26 12:29:50

+0

您需要一个SWT解决方案,而不是基于Swing的解决方案。 – 2013-04-27 12:49:35

相关问题