2013-04-25 222 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

相關問題