【发布时间】:2012-02-17 23:32:22
【问题描述】:
我在我认为都是 64 位运行时环境中使用 eclipse。当前设置 Java>installed JREs 和 Execution Environment 都指向 jdk1.6.0_30,它是 JDK 的 64 位版本。但是,eclipse 仍然认为它运行的是 32 位版本,因为当我运行时:
System.getProperty("sun.arch.data.model");
它返回 32 而不是 64。
我为 64 位机器编译的外部 JNI 资源不会链接到共享的 .so 文件,除非它在 64 位环境中运行。 (当我尝试这样做时,我遇到了字长不匹配错误)
那么如何重新配置 eclipse 以运行 64 位 jvm。 eclipse 本身是否必须是 64 位版本?
:在linux上
编辑:我已经尝试了每个人的建议,但没有任何效果。我已更改执行和环境变量以指向我拥有的最新 JDK,即 1.6_30。当我从命令行运行程序时,我得到 64 和 amd64 作为值,当我在 ecrise 中运行相同的程序时,我得到 32 和 i386。 eclipse 中的某些问题导致它尝试在 32 位 JVM 上运行它。当我尝试 java -d32 -version 时,它说没有安装 32 位环境,但 Eclipse 不知道。我已经修改了 Eclipse.ini 文件,但仍然没有任何效果。在这些更改之后,我重新启动了 eclipse……什么都没有。一些了解日食的人可以在这里帮助我。谢谢
【问题讨论】:
-
你确定
"sun.arch.data.model给出的是 JVM 架构而不是 OS 架构。我对这个概念有点不清楚。 -
我不确定。我从另一个堆栈溢出线程中得到了它。但现在会仔细检查
-
您运行的是 64 位版本的 Eclipse 吗?我很确定 Eclipse 会根据其版本选择合适的 JVM,而且由于 Eclipse 附带 JNI,因此您不能混合搭配 32 位和 64 位 Eclipse/JVM 安装。
-
@Randnum:eclipse 使用了一堆 JNI,所以如果你有 32 位 Eclipse,它必须运行 32 位 JVM 才能运行它的 32 位 JNI。否则它也会出现您上面描述的问题。
-
@Randnum:查看 Eclipse 安装的
plugins目录。你应该看到org.eclipse.swt.gtk.linux.platform_version.jar。该文件将指示您正在运行的版本。
标签: java eclipse java-native-interface