【问题标题】:running 32&64-bit java code运行 32&64 位 java 代码
【发布时间】:2012-04-23 09:10:56
【问题描述】:

我正在开发一个调用 32 位 CPLEX Optimizer 的 Java 程序,
但我会在 64 位机器上运行这段代码。
我可以在 64 位中运行部分程序,而在 32 位中运行其他部分吗?

【问题讨论】:

    标签: java 32bit-64bit cplex


    【解决方案1】:

    如果它是在自己的进程中运行的单独程序,则没有问题。 32 位和 64 位进程可以在同一系统上共存。

    如果它是一个将 32 位本机库加载到 JVM 中的 Java 库(例如,使用 JNI),它只能在 32 位 JVM 进程中工作。

    【讨论】:

    • 命令是为了什么?如果这就是您所要求的,那么没有使 32 位库在 64 位进程中工作的灵丹妙药。您可以尝试在单独的 32 位 JVM 进程和 64 位进程中运行优化器,并让两个 JVM 使用 RMI 之类的东西进行通信。
    • 在系统上安装 32 位 JRE 后,您需要配置 IDE 以使用它。有关 Eclipse 说明,请查看stackoverflow.com/a/327661/1118307
    • 我实际上想以 64 位运行这个程序。我安装 64bit java.ans 设置 net beans 使用 64bit jdk,但是调用 cplex 库时显示错误。可能会退出某些命令以临时转换为 32 位?
    • @mehdifallahi 您可以通过将源代码重新编译为 64 位库来“转换”32 位共享库。 (加上修复代码中的任何错误,因为这并不总是微不足道的)如果这听起来很头疼,那是 Java 旨在解决的那种头疼问题。
    • @PeterLawrey,只有在你有源代码的情况下才有效。在这种情况下,它似乎是一个第三方商业图书馆。
    【解决方案2】:

    要从 64 位进程使用 32 位共享库,您需要有两个进程。一个拥有 64 位 JVM 的 JVM,它调用一个 32 位进程来保存您的共享库。

    另一种选择是将您的共享库从源代码重新编译为 64 位库。

    【讨论】:

      猜你喜欢
      • 2015-06-20
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 2012-11-07
      • 2017-02-18
      • 1970-01-01
      • 2019-12-17
      相关资源
      最近更新 更多