【问题标题】:Java compilation problem, Linux, project from Eclipse re-compile on LinuxJava编译问题,Linux,来自Eclipse的项目在Linux上重新编译
【发布时间】:2011-03-01 14:07:55
【问题描述】:

我正在尝试重新编译从 Eclipse 导出的现有 Java 项目。有必要重新编译它,因为我在安装了不同(旧)Java 版本的其他机器上远程运行模拟。我尝试重新编译我的 .java 文件,该文件指定了有问题的模拟。但是,似乎也有必要重新编译所有其他类等。有没有人知道如何在不使用 Eclipse 的情况下执行此操作(我不是其他机器上的管理员,因此我无法使用 Eclipse)而不是手动操作,因为项目非常庞大?

非常感谢您的任何建议!

【问题讨论】:

  • Eclipse 不能导出 Ant 文件吗? (参见 Ant 进行编译,它是一个类似于 GNUMake 的工具,只是,好吧,它不是)

标签: java linux compilation


【解决方案1】:

我建议您始终使用命令行方式来构建应用程序。在 Java 中执行此操作的常用方法是使用 ANT(或 Maven)。

【讨论】:

    【解决方案2】:
    1. 正如@Santiago Lezica 所说,Eclipse 可以生成一个 Ant 文件。

    2. 我相信 Eclipse 允许您为比当前运行的平台更旧的目标平台进行构建。这样您就可以在本地进行所有构建。

    第二种方法的优势在于,您可以在自己舒适的...工作站上解决为旧平台编译所产生的任何问题(例如,使用新的语言功能、使用新的类/方法)。

    【讨论】:

      【解决方案3】:

      您应该考虑另一个选项:告诉 Eclipse 为旧 Java 版本生成代码(请参阅编译器选项)。这样,即使 Eclipse 使用 Java 5,您也可以创建在 Java 1.3 上运行的代码。

      【讨论】:

      • 感谢您的建议。然而,这一切的重点是我想在远程机器上编译它。这是一个集群,因此在那里编译它应该会更好。特别是因为我可能需要偶尔更改一些类,如果我不得不在其他地方这样做会很不方便。
      • 这不是 C 语言,在目标架构上重新编译代码会使其更快。这些类已经编译。为什么不做任何修改就重新编译它们?那只是浪费时间。生成的代码不会更快或更好,因为 Java 运行时 (JIT) 会在运行时对其进行优化; Java 编译器本身并没有优化多少。
      【解决方案4】:

      不确定您的要求是什么,但您可以在 Linux 安装的(旧)级别为您的项目设置编译器级别。这将导致 Eclipse 以该版本重新编译它,而不是更新版本。

      在我的公司,我们使用 IBM 的 Rational Application Developer(而不是纯 Eclipse),但我假设该选项在同一个位置。如果您右键单击您的项目,您可以转到 Java Compiler 选项,然后将兼容性设置为 Linux 上的级别(1.3、1.4 等)。

      由于编译 Java 字节码应该是可移植的(在大多数情况下),这应该可以帮助您解决大部分问题。

      否则,另一种选择是使用 Ant 或 Maven 脚本(可以由 Eclipse 启动),然后在运行之前使用属性来设置编译器。这样,如果您确实需要“较新”的编译代码并且不能在两个系统上使用“较旧”的代码,您就不必一直切换项目的属性。

      【讨论】:

      • 谢谢,我会尝试用 Ecplise 重新编译。但我想应该有办法在远程机器上编译? Eclipse 方法有些不尽人意。
      • 所以我会使用其他人在这里的建议并使用 Ant 或 Maven 来构建您的项目。将构建文件与您的项目一起存储可能不是一个坏主意。这给了您两个好处: 1) 您现在可以在您的 Linux 机器上在 Eclipse 之外构建项目。您只需要安装和配置 JDK 和 Ant 或 Maven。 2) 您可以告诉 Eclipse 运行您的 Ant 脚本或 Maven 脚本(如果您安装了 m2eclipse 插件)。现在您正在构建相同的东西,只是您正在使用 Eclipse 来启动它。对我来说最有意义的是这两个系统的方式。
      猜你喜欢
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 2013-03-14
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多