java Eclipse RCP:不启动应用程序的命令行参数
我有一个RCP应用程序,是我在3年开始的。现在我做了一个软迁移到4。十,
我需要为最终用户添加命令行参数选项,例如-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();
}
}
它不会启动UI,但会启动启动启动屏幕。是否有一种方法可以将getCommandLineArgs()
放置在启动屏幕开始之前
SplashHandler尝试:我尝试绑定自己的SplashHandler,但遇到了相同的问题。当我到达SplashHandler的init方法时,带有splash图像的shell已经显示出来,我认为这个shell是在我的任何类可以进行更改之前创建的
# 1 楼答案
启动屏幕由启动器(典型的eclipse.exe或类似)在声明Java VM之前显示。根据
configuration/config.ini
中的条目osgi.splashPath=platform\:/base/plugins/...
显示启动屏幕你唯一的出路就是
config.ini
中删除此项请注意,与今天相比,启动屏幕将“延迟”,并且
SplashHandler
将不会被自动实例化和调用(尽管您可以自己执行)# 2 楼答案
我还没看过这四个。x文档,但在GUI启动之前,似乎可以使用start method in IApplication来处理这个问题
然后在应用程序实际启动之前执行类似的操作