獲取Eclipse 4應用程序的命令行參數我需要以某種方式獲取正在運行的Eclipse 4應用程序的命令行參數。我正在研究一個基於Eclipse 4 RCP的小型應用程序,但是我覺得這個問題更常見。我無法弄清楚,如何從一個產品的代碼中分別得到一個插件的命令行參數,該應用程序已經被執行了。如何從代碼
我需要使用自定義命令行參數來傳遞信息到我的代碼。有人知道提示嗎?
獲取Eclipse 4應用程序的命令行參數我需要以某種方式獲取正在運行的Eclipse 4應用程序的命令行參數。我正在研究一個基於Eclipse 4 RCP的小型應用程序,但是我覺得這個問題更常見。我無法弄清楚,如何從一個產品的代碼中分別得到一個插件的命令行參數,該應用程序已經被執行了。如何從代碼
我需要使用自定義命令行參數來傳遞信息到我的代碼。有人知道提示嗎?
由於E4是使用春分作爲運行時可以使用平臺類來獲取應用程序參數。
Platform.getApplicationArgs()
我明白了。它並不那麼直觀,但它對我很有用。有一個實例實現了接口。 (界面取決於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 {
}
}
有一個常量'IApplicationContext.APPLICATION_ARGS'可以用來代替' 「application.args」 字符串。 –