在Eclipse中删除bin文件夹后如何重新生成?

8

我正在放弃Net Beans(因为Netbeans智能感知速度太快,让我无法忍受)。然而,自从NetBeans时代以来,我的习惯让我对新的Eclipse感到困扰。 通常,当Netbeans自动编译机制出现问题时,我只需进入项目根目录下的构建文件夹并删除它(有时使用Unlocker),然后Net Beans会重新创建该文件夹并将.class文件放入其中。然而,最近,当我试图在Eclipse项目根目录下的bin文件夹中执行相同的操作时,即使我重启IDE、关闭“自动构建”并运行“全部构建”(Ctrl+B),bin文件夹也不会被重新创建。


由于Eclipse不会将任何.class文件生成到bin文件夹,我无法执行其他操作。没有单元测试运行,也没有Class.main方法运行。哎呀。 - Phương Nguyễn
6个回答

13
在菜单中,不要关闭自动构建,然后点击“项目(Project)” > “清除(Clean)…”。

1
它有一些帮助。但是我在src文件夹中创建的xml文件没有被复制到bin文件夹中。 - Phương Nguyễn
请注意我的另一个评论。如果这些文件是在Eclipse之外创建的,直到您按F5,Eclipse才会意识到它们的存在。 - Carl Smotricz

6

可能 bin 不是您的类输出文件夹。您应该在 项目属性 | Java构建路径 | 源 中进行检查。


这样就可以了,Eclipse会自动创建并隐藏您的输出文件夹(默认情况下已过滤)。如果您想显示它,可以自定义过滤器。 - Malaxeur
1
我认为bin应该是我的输出文件夹,因为当我使用Project>Clean...时,该文件夹会被重新创建(在我删除它之后)。 - Phương Nguyễn
因此,该文件夹是否被重新创建且为空?您是否(a)从Eclipse外部进行了检查并且(b)在Eclipse中进行了视图过滤的检查? - Carl Smotricz
哎呀,我检查了项目属性|Java构建路径,发现我已经将bin添加到源列表中(尽管同时bin也是输出文件夹)。从源条目列表中删除bin解决了问题。谢谢。 - Phương Nguyễn

1
可能与这个问题无关,但需要注意的是,Eclipse对其文件夹的内容进行了伪装。更准确地说,它会报告所有文件夹(即包含的文件和子文件夹)的内部模型的内容,并且只有在您明确刷新GUI中的视图时,才会刷新该内部视图。
尤其是当您在Eclipse之外操作文件或使用从Eclipse启动但不直接连接到Eclipse的工具时,Eclipse将无法知晓这些差异。

1
另一个可能性是您的项目没有“Java nature”。您在包资源管理器中看到源包吗?
如果没有,这一节应该出现(或进入)您的.project文件中:
<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
</natures>

1
这对我解决了问题。重要的是,在Java nature之前,我有maven2Nature和nature...这样可以防止文件弹出到bin目录中。 - BrantApps

0

请确保您的.project文件至少包含以下内容:

</projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>

附注:适用于标准Java项目


0
你尝试过直接在文件系统上重新创建bin文件夹并在Eclipse项目上执行刷新吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接