当前位置: 首页 > 知识库问答 >
问题:

尝试在Eclipse之外使用资源/项目时出现工作区关闭错误

琴刚豪
2023-03-14

我正在使用Eclipse ast/jdt,正如这篇文章中所解释的——我如何在Eclipse之外的项目中使用java Eclipse抽象语法树?(即不是一个eclipse插件)

问题是,当我试图使用< code>resolveBinding()时,我总是得到null,这是因为没有使用< code>setProject(IJavaProject)或setEnvironment(String[],String[],String[],boolean),因为在这个post-VariableDeclarationFragment节点resolveBindind()在eclipse/jdt/ast中返回null

为了解决返回null的问题,我尝试使用代码,但最终得到一个错误消息,说< code>Workspace is closed。

可能出了什么问题?

我的工作区中有. project文件。

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>AstRewrite4</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

共有1个答案

公孙宸
2023-03-14

您不在Plug-in/Bundle Runtime中,因此org.eclipse.core。资源插件未“启动”。此时才初始化工作区和关联对象。您必须自己调用ResourcesPlugin上的start()方法,这并不是说我保证可以解决所有问题,也不是说这不会导致其他问题。

 类似资料:
  • 在Windows机器上,我在Eclipse的Gradle项目中使用Groovy已有一段时间了。现在我正在尝试为Linux机器进行配置。(Linux Mint MATE)<代码>uname-a给出: Linuxmike-纬度-E6410 4.4.0-53-通用#74-Ubuntu SMP Fri Dec 2 15:58:04 UTC 2016 i686 i686 GNU/Linux 日蚀氧气。使用以

  • 我知道,如果资源已实现自动关闭,您通过尝试传递的资源将自动关闭。到现在为止,一直都还不错。但是,当我有几个我想要自动关闭的资源时,我该怎么办呢。带插座的示例; 所以我知道套接字将被正确关闭,因为它在try中作为参数传递,但是输入和输出应该如何正确关闭呢?

  • 不管错误情况如何,使用资源尝试是否总是关闭资源?我的意思是考虑以下代码: 会一直关闭吗?我读过Oracle文档,其中说: 无论try语句是正常完成还是突然完成,它都将关闭 因此无论程序正常运行还是抛出异常,它都将起作用。但是,类似或崩溃的情况怎么办?我知道这些条件对块不起作用。那么,使用资源尝试失败的条件是否存在? 这只是我请求的好奇心,谁能说明这一点吗?

  • 但是,如果我返回查看菜单>1_Windows_Working_Set,那么我可以看到项目B的关闭文件夹:项目B已关闭

  • 我用Java做了一个游戏。它在Eclipse中工作得非常好。 我把它导出为一个可运行的罐子。当双击它的图标时,它不会打开。所以我试着从命令行运行JAR。 在试图检索图像资源的一行代码中,我遇到了一个NullPointerException错误(正如我所说,它在Eclipse中工作得很好)。这是发生错误的代码行: 我不知道出了什么问题。这是我项目的结构: 有什么想法吗?我开始绝望了。 非常感谢你的帮

  • 我正在使用Eclipse开普勒和Maven的M2E插件。 我想用我的“Util”Maven项目创建web app Maven项目——这不是一个多模块项目。我只想要这么简单。jar在项目中,可以在使用主项目的过程中编辑带有增强和修复的“Util”项目。 我在webb应用程序中只添加了maven依赖项(没有构建路径、部署程序集等设置),Eclipse自动发现这是来自工作区的项目(简单地说:不是带有版本