3

你好 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位)

4

2 回答 2

2

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

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

于 2013-03-01T09:43:13.170 回答
0

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

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

>javac MyJavaProgramUsing32BitNativeLib.java

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

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

视窗

最有可能的是,代码将类似于:

>"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
于 2016-11-16T01:10:57.373 回答