【问题标题】:load java x86_64 jnilib on i386 Mac OS在 i386 Mac OS 上加载 java x86_64 jnilib
【发布时间】:2012-01-13 09:50:05
【问题描述】:

我有一个基于 i386 架构和 jvm1.6.0_26 64 位的 MAC OS 10.5.8

我已经使用 java.library.path=lewys/macosx/x86_64 启动了 JVM,并且我有:

Caused by: java.lang.UnsatisfiedLinkError: .../macosx/x86_64/libLeWYS.jnilib:  no suitable image found.  Did find:  .../macosx/x86_64/libLeWYS.jnilib: mach-o, but wrong architecture
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1742)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at org.objectweb.lewys.probe.macosx.CpuProbe.<clinit>(CpuProbe.java:58)
    at org.ow2.clif.probe.cpu.Insert.<init>(Insert.java:72)
    ... 55 more

有解决方法吗?

谢谢

PS:强制32位数据模型不起作用,例如:java -d32 说Cannot run Java in 32 bit mode, Continuing in 64 bit mode

【问题讨论】:

  • 您在 32 位架构上运行 64 位 JVM?嗯……
  • 是的,正如我所说,我无法在 32 位模式下运行 1.6jvm。
  • 您为什么要这样做?没有理由在 32 位 Windows 上运行 64 位 VM。我能想到的唯一原因是虚拟机附带了一个虚拟机。这种做法应该让供应商靠墙开枪。
  • 你不能安装一个 32 位的 JVM 来代替吗? MacOS 10.5.x 上似乎有一个用于 32 位 Java 6 的端口:landonf.bikemonkey.org/static/soylatte
  • @owlstead 他没有在 Windows 上运行 :),顺便说一句:flickr.com/photos/jordoncooper/410912420 :D

标签: java macos x86-64


【解决方案1】:

我认为您不能这样做,因为 JVM 中的本机库仅适用于 x86-64 位。

如果您在带有虚拟化扩展的 64 位 CPU 上运行,那么您可以在虚拟机中运行它,因为您将回到 64 位环境。

【讨论】:

    【解决方案2】:

    您可以通过将“-d32”作为 VM 参数在 Eclipse 中强制使用 32 位:

    这适用于我在 OSX 10.8.4 上使用 JVM 1.6.0_51 64 位

    我收到了同样的编译错误,这修复了它。

    【讨论】:

      猜你喜欢
      • 2013-11-22
      • 2013-02-05
      • 2010-12-06
      • 2011-02-02
      • 2018-05-19
      • 1970-01-01
      • 2012-01-03
      • 2011-05-04
      • 1970-01-01
      相关资源
      最近更新 更多