2013-07-29 60 views
3

獲取Eclipse 4應用程序的命令行參數我需要以某種方式獲取正在運行的Eclipse 4應用程序的命令行參數。我正在研究一個基於Eclipse 4 RCP的小型應用程序,但是我覺得這個問題更常見。我無法弄清楚,如何從一個產品的代碼中分別得到一個插件的命令行參數,該應用程序已經被執行了。如何從代碼

我需要使用自定義命令行參數來傳遞信息到我的代碼。有人知道提示嗎?

回答

4

我明白了。它並不那麼直觀,但它對我很有用。有一個實例實現了接口。 (界面取決於org.eclipse.equinox.app。)實例可通過注入機制訪問。方法返回一張地圖。但它不會返回一些命令行參數及其值的映射。它返回一些地圖,它在"application.args"之下存儲一個數組。例如:

@PostConstruct 
public void createControls(Composite parent, HtmlEditorService editorService, IApplicationContext iac) { 
    System.out.println(iac.getArguments().get("application.args").getClass().getCanonicalName()); 
    ... 
} 

然後打印出java.lang.String[]。但是,數組只包含我的自定義參數,而不是所有參數。幸運的是,這對我並不重要。我只需要獲取我的自定義參數。

的額外提示插件激活

public class Aktivator implements BundleActivator { 
    @Override 
    public void start(BundleContext context) throws Exception { 
     ServiceReference<?> ser = context.getServiceReference(IApplicationContext.class); 
     IApplicationContext iac = (IApplicationContext)context.getService(ser); 
     System.out.println(iac.getArguments().get("application.args").getClass().getCanonicalName()); 
    } 

    @Override 
    public void stop(BundleContext context) throws Exception { 
    } 
} 
+2

有一個常量'IApplicationContext.APPLICATION_ARGS'可以用來代替' 「application.args」 字符串。 –