【问题标题】:Native Libraries, Error: This Java instance does not support a 32-bit JVM本机库,错误:此 Java 实例不支持 32 位 JVM
【发布时间】:2023-03-14 20:15:02
【问题描述】:

你好 stackoverflow 社区,

我正在使用 NetBeans IDE 7.2.1,并且正在尝试使用本机库编译 + 运行项目。我的库需要 32 位 JVM。我正在运行 Windows 7 64 位。在尝试编译+运行我的项目时,我遇到了以下问题:

    Error: This Java instance does not support a 32-bit JVM.
    Please install the desired version.
    Java Result: 1
    BUILD SUCCESSFUL (total time: 0 seconds)

我已尝试进行配置并包含以下参数(无济于事):

    -d32
    -d32 -vm "C:\Program Files (x86)\Java\jre7\bin\javaw.exe" 
    -vm "C:\Program Files (x86)\Java\jre7\bin\javaw.exe"

我安装了 64 位 JRE 和 32 位 JRE,并且在我的平台管理器中同时安装了 64 位 JDK 和 32 位 JDK。

有解决此问题的建议吗?我读过你可以通过在 32 位 JRE 之前安装 64 位 JRE 来解决问题;这是其中一个问题吗? (我确实是先装64位的)

【问题讨论】:

  • 感谢您的快速回复,11684!阅读您所说的,我能够找到更多信息。在 NetBeans 中,我右键单击要编译的项目,然后转到属性 > 库 > java 平台,并指定我的 32 位 JDK。现在修复其他可管理的错误:)

标签: java netbeans jvm java-native-library


【解决方案1】:

当您启动一个进程时(例如在命令提示符下,但当您从代码启动另一个进程时它与 AFAIK 相同)时,会搜索一组特定路径(包含在 PATH (?) 环境变量中)以查找可执行文件名称与您输入的内容相匹配。如果 64 位和 32 位版本具有相同的名称,并且首先找到 64 位版本,则会执行该版本。我建议指定 32 位 JDK 的完整路径。

编辑:
我刚刚看到这个问题是关于 NetBeans IDE 的。我从来没有使用过,所以我能给你的唯一建议是查看 NetBeans 的设置,并调整 JDK 和 JRE 的路径,使其指向 32 位版本。对于不使用 NetBeans 的人,我将在这里留下我的答案。

【讨论】:

    【解决方案2】:

    感谢@11684 的出色回答。我只是想为那些从命令行/命令提示符编译的人添加一个代码示例。

    对于编译,使用哪个 javac 无关紧要 - 32 位或 64 位。

    >javac MyJavaProgramUsing32BitNativeLib.java
    

    对于程序的实际执行,指定java.exe的32位版本的路径很重要

    我将发布 Windows 的代码示例,因为这似乎是 OP 使用的操作系统。

    Windows

    代码很可能是这样的:

    >"C:\Program Files (x86)\Java\jre#.#.#_###\bin\java.exe" MyJavaProgramUsing32BitNativeLib 
    

    区别在于jre 后面的数字。要查找应使用的数字,请输入:

    >dir "C:\Program Files (x86)\Java\"
    

    在我的机器上,流程如下

    C:\Users\me\MyProject>dir "C:\Program Files (x86)\Java"
     Volume in drive C is Windows
     Volume Serial Number is 0000-9999
    
     Directory of C:\Program Files (x86)\Java
    
    11/03/2016  09:07 PM    <DIR>          .
    11/03/2016  09:07 PM    <DIR>          ..
    11/03/2016  09:07 PM    <DIR>          jre1.8.0_111
                   0 File(s)              0 bytes
                   3 Dir(s)  107,641,901,056 bytes free
    
    C:\Users\me\MyProject>
    

    所以我知道我的号码是1.8.0_111,我的命令是

    C:\Users\me\MyProject>"C:\Program Files (x86)\Java\jre1.8.0_111\bin\java.exe" MyJavaProgramUsing32BitNativeLib
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 2014-04-12
      • 2018-04-24
      • 2015-02-11
      • 1970-01-01
      • 2017-01-15
      • 2011-09-04
      相关资源
      最近更新 更多