【问题标题】:Eclipse Project Types Definition/ConfigurationEclipse 项目类型定义/配置
【发布时间】:2015-07-06 20:18:17
【问题描述】:

我正在尝试使用具有自己不同项目类型的修改版 Eclipse。对于某些项目类型,当我创建项目时,重新启动然后删除(未选中从磁盘中删除)项目我收到以下错误:

org.eclipse.core.internal.resources.ResourceException: Resource '/projectName' does not exist.
at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:341)
at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:215)
at org.eclipse.core.internal.resources.Project.checkAccessible(Project.java:147)
at org.eclipse.core.internal.resources.Resource.checkAccessibleAndLocal(Resource.java:221)
at org.eclipse.core.internal.resources.Resource.touch(Resource.java:1949)
at org.eclipse.core.internal.resources.Project.touch(Project.java:1403)
at org.eclipse.wst.jsdt.internal.core.SetContainerOperation.execute(SetContainerOperation.java:122)
at org.eclipse.wst.jsdt.core.JavaScriptCore.setJsGlobalScopeContainer(JavaScriptCore.java:3901)
at org.eclipse.wst.jsdt.launching.JREContainerInitializer.initialize(JREContainerInitializer.java:48)
at org.eclipse.wst.jsdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:2214)
at org.eclipse.wst.jsdt.internal.core.JavaModelManager$6.run(JavaModelManager.java:2144)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2313)
at org.eclipse.wst.jsdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:2160)
at org.eclipse.wst.jsdt.internal.core.JavaModelManager.getJsGlobalScopeContainer(JavaModelManager.java:1536)
at org.eclipse.wst.jsdt.core.JavaScriptCore.getJsGlobalScopeContainer(JavaScriptCore.java:1319)
at org.eclipse.wst.jsdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2747)
at org.eclipse.wst.jsdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2026)
at org.eclipse.wst.jsdt.core.JavaScriptCore.initializeAfterLoad(JavaScriptCore.java:2655)
at org.eclipse.wst.jsdt.internal.ui.InitializeAfterLoadJob$RealJob.run(InitializeAfterLoadJob.java:32)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

!SUBENTRY 1 org.eclipse.core.resources 4 368 2015-07-06 13:39:58.865 !MESSAGE 资源“/projectName”不存在。

我的怀疑是 eclipse 不承认这是一个项目或其他东西。所以问题如下:有人知道eclipse如何定义可接受/可用的项目类型吗?

【问题讨论】:

    标签: eclipse ide


    【解决方案1】:

    您的堆栈跟踪显示工作区中没有文件夹projectName,因此看起来该项目根本不存在。

    项目文件夹中.project 文件的内容定义了项目的“性质”和“建设者”。例如,Java 插件项目.project 文件可能如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
        <name>projectName</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
            <buildCommand>
                <name>org.eclipse.jdt.core.javabuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
            <buildCommand>
                <name>org.eclipse.pde.ManifestBuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
            <buildCommand>
                <name>org.eclipse.pde.SchemaBuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
            <buildCommand>
                <name>org.eclipse.pde.ds.core.builder</name>
                <arguments>
                </arguments>
            </buildCommand>
        </buildSpec>
        <natures>
            <nature>org.eclipse.pde.PluginNature</nature>
            <nature>org.eclipse.jdt.core.javanature</nature>
        </natures>
    </projectDescription>
    

    IProjectDescription 接口提供了用于设置这些值的 API。

    【讨论】:

    • 首先感谢您的快速回复。是的,我知道堆栈跟踪显示工作区中没有文件夹 projectName 但实际上有,所以这使情况变得非常复杂。事实上,当使用调试模式时,我可以看到 checkExists 方法被调用 flag= -1 你知道这意味着什么吗?
    • -1 只是在不需要特殊检查时使用的默认标志。如果您没有使用IProject.create API 创建项目,您可能会收到类似这样的错误。
    • 现在我知道我的问题是我不知道这个 org.eclipse.wst.jsdt.ui 插件是如何在 Eclipse 初始化期间激活的,只要一个项目使用这个 org.eclipse.wst。 jsdt.core.jsNature 自然已经存在于工作空间中!
    猜你喜欢
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2012-08-28
    • 2011-04-09
    • 2014-11-21
    • 2016-11-23
    相关资源
    最近更新 更多