【问题标题】:Compiling Only One Class in a Project项目中只编译一个类
【发布时间】:2012-01-08 21:57:26
【问题描述】:

我已关闭自动构建,我只想构建一个类(用于调试)。这可能吗?其他类已经在 build 目录中编译,但它们可能在 Eclipse 下无法编译。

【问题讨论】:

  • 用javac通过命令行编译有什么问题?
  • @Mechkov 工作量很大。我认为您必须键入正在使用的每个罐子,对吗?另外我想让eclipse热部署它。
  • 是的,你对类路径上的 jar 是正确的。不过只是一个建议。问候!

标签: java eclipse debugging build compilation


【解决方案1】:

我认为您可以通过转到项目菜单并选择构建工作集 -> 选择工作集。

选择新的,给你的集合命名,然后只选择你想要构建的单个类。完成后,它应该会构建。

下次您要构建时,转到项目菜单并选择构建工作集 -> 和您创建的集合的名称。

【讨论】:

    【解决方案2】:

    我认为 Eclipse 足够聪明,可以只重新编译那些您以某种方式实际更改过的类(即使其他类无法编译)。因此,如果您打开自动构建,编辑一个类并保存它,Eclipse 将重新编译它。如果您(例如)重命名给定类中的一个变量,我怀疑 Eclipse 是否会重新编译整个代码库。

    底线是:坚持自动建造

    如果您有一些特殊的用例,那么最好知道它是什么。除了这个James's answer 可能是你最好的选择。


    我在 Eclipse 中为自己创建了一个小示例 Maven 项目(虽然它是一个 Maven 项目,但 Eclipse 的自动构建工作正常,就像在 Java 项目中一样,没有什么神奇之处)。

    .
    |-- pom.xml
    |-- src
    |   `-- main
    |       `-- java
    |           |-- A.java
    |           `-- B.java // B contains erroneous "stuff"
    `-- target
        `-- classes
            |-- A.class // A compiles without a word
            `-- B.class // even though it contains errors 
                        // B compiles too ... weird
    

    (请注意,在包/项目资源管理器窗口中,在目标文件夹下没有列出任何内容。我可能会想象一些事情,但通常会在那里列出类和其他东西......不确定。)

    【讨论】:

      【解决方案3】:

      由于某种原因,当我选择构建项目时,当我使用 JRebel 和自动构建关闭时,eclipse 没有重新构建我的类。作为一种解决方法,我添加了一个 main 方法,引用了我想要构建的另一个类(通过在 main 的 sys 中打印 OtherClass.class),然后使用 Run as Standalone 运行 main 方法。

      网络应用程序的 2 个文件部分。所以一旦他们编译,tomcat就有了新的类文件,我不必重新启动(由于模块很多,这需要15分钟)

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 1970-01-01
        • 2014-07-03
        • 2023-03-28
        • 2020-03-22
        • 1970-01-01
        • 2011-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多