从main方法

时间:2018-04-12 08:27:41

标签: java eclipse eclipse-rcp

还有从简单的Java main方法创建临时eclipse项目和工作区吗?我现在有以下代码:

public static void main(String[] args)
{
    try
    {
        IProgressMonitor progress = new NullProgressMonitor();
        IWorkspace workspace = ResourcesPlugin.getWorkspace();
        IWorkspaceRoot root = workspace.getRoot();

        IProject project = root.getProject();

        IProjectDescription desc = workspace.newProjectDescription(project.getName());
        IPath path = new Path("./project/");
        desc.setLocation(path);

        project.create(desc, progress);
        project.open(progress);
    }
    catch (Exception e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

但这不能例外"工作区已关闭"。我知道必须使用org.eclipse.equinox.launcher.Main对工作空间进行某种初始化,但是这是如何以编程方式完成的?试图找到解决方案,但经过一个小时的谷歌搜索我无法找到任何解决方案。

谢谢!

1 个答案:

答案 0 :(得分:0)

是和否,取决于观点。

调用只是API不起作用,因为新启动的VM没有执行必要插件的所有启动功能,即使你已经将它们添加到类路径中,因此f.e.所有的路径都不见了。

您有两种方法可以尝试解决这个问题:

  1. 创建a full-blown RCP application
  2. 尝试在与Eclipse相同的VM中运行您的应用程序(我不确定Run ...配置中是否有这样的切换)。
  3. 可能大多数建议 - 创建你想做的事情own plugin with an action并将其安装到Eclipse中。