【问题标题】:Compile 32 bit Java builds on 64 bit machine with Eclipse使用 Eclipse 在 64 位机器上编译 32 位 Java 构建
【发布时间】:2013-06-13 07:18:11
【问题描述】:

所以标题中的问题,我需要在 32 位 Windows XP 系统上的 Tomcat 中运行我的服务器应用程序,我正在 Eclipse 中的 64 位 Windows 7 上工作和编译。我如何将其编译为 32 位,我需要做什么?我假设当我在 64 位机器上编译它时它不会在 32 位 Windows 上运行?

【问题讨论】:

  • 这一切都取决于你在你的机器上安装了什么jdk。
  • 除非您在构建过程中构建本地库...您的假设是不正确的。
  • @StephenC 好吧,我很高兴你所说的,我的假设不正确,但是当我尝试运行它时,它说:“无法在IA 32 位平台”所以我认为您使用的平台通常很重要......?我需要以某种方式编译 32 位
  • @ArturasM - 那么您要么正在构建本地库作为构建的一部分(并且您必须弄清楚如何交叉编译该本地库)或本地库library 是一个依赖项(您必须下载等与您的平台匹配的版本)。但是,您拥有 DLL 的事实意味着这不是您正在构建的纯 Java 应用程序。
  • @ArturasM - 我认为您需要了解您在此处构建的软件的性质,该 DLL 的来源,以及您是否真的将其构建为此构建的一部分。

标签: java eclipse build 64-bit 32-bit


【解决方案1】:

Java 不构建 32 位或 64 位应用程序 - 字节码可跨不同位架构移植。

唯一的例外是您可能在代码中使用的本机库。如果有,那么您将不得不为各自的平台手动编译它们。否则,java 代码完全可以跨 32 位和 64 位平台移植。

【讨论】:

  • 嗯,它说:“无法在 IA 32 位平台上加载 AMD 64 位 .dll”
  • dll 不是依赖于平台的 java 库。正如答案“唯一的例外是您可能在代码中使用的本机库”中所述。就 java 库而言,它们是可移植的
  • 是的,字节码是,但是 java 有一个叫做 jni 的东西,它非常残酷地打败了它。
  • @DusteD 本机代码指的是我的回答中所有与 JNI(java 本机接口)相关的内容。
【解决方案2】:

问题在于您的 JNI DLL,需要编译为 32 位以匹配 32 位 JRE。

【讨论】:

    【解决方案3】:

    Java 独立于操作系统。

    你可以用你的 64 位机器编译并在 32 位计算机上运行它,只要这台计算机有 32 位 VM。

    【讨论】:

    • 嗯,它说:“无法在 IA 32 位平台上加载 AMD 64 位 .dll”
    【解决方案4】:

    如果您仍在寻找一些“简单”的解决方案,一种方法是在虚拟机中安装 32 位操作系统并从那里运行 eclipse。我知道这很丑,但它可以工作。

    这里提到了另一种方法。 How to launch java swing app which used precompled DLL from cmd?

    【讨论】:

      【解决方案5】:

      您可以在 64 位机器上安装 32 位 jdk。将 JAVA_HOME 指向这个 jdk 并使用它。它

      【讨论】:

        猜你喜欢
        • 2016-05-17
        • 2014-11-27
        • 1970-01-01
        • 2013-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        • 2017-01-21
        相关资源
        最近更新 更多