【问题标题】:How to reconfigure eclipse to use a 64 bit JVM如何重新配置​​ Eclipse 以使用 64 位 JVM
【发布时间】: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


【解决方案1】:

将 -vm 标记添加到 eclipse.ini 或显式指定 JRE 的快捷方式。请注意,Windows XP 的默认设置是使用 Windows 附带的 CRAPPY JRE。

-vm "%JAVA_HOME%/bin/javaw.exe"

【讨论】:

  • 请注意,eclipse.ini 中的格式是 -vm 在一行,值在下一行。我不知道为什么。
  • 是的,我做得对。它实际上可以识别我放置的新位置,但由于某种原因,即使它识别为正确的 JDK/JRE,它仍处于 32 位模式。就像有一个标志我必须在某个地方切换
  • @Randnum 既然您说您使用的是 Linux,您是否尝试过使用 VM 参数 -d64 运行您的 Java 程序?在 Windows XP 的 Oracle Java 1.6 版本上,VM 选项 -d32-d64 不存在。
  • 打开项目的运行配置...并检查那里配置的运行时。
【解决方案2】:

在eclipse.ini中添加:

-Xmx8g
-d64

【讨论】:

  • 澄清:-Xmx8g 参数告诉 Eclipse 它最多可以使用 8 GB 的 RAM。使 Eclipse 使用 64 位 JVM 并不需要此参数。
  • 澄清:-d64
【解决方案3】:

对我来说它工作正常! .确保您的路径是 c:\Program File 而不是 c:\Program File(X86) (如果您安装了 64 位 JDK,它应该存储在 c:\ Program Files 中)

【讨论】:

  • 对不起,我对 linux 不太了解。
【解决方案4】:

Eclipse配置说明here

【讨论】:

  • 我已经修改了ini,但它不起作用。它继续在 i386 上显示 32 位。
【解决方案5】:

“已安装的 JRE”(最好使用 JDK)用于构建和运行您的代码,可以是不同的架构或 Java 版本。用于运行 Eclipse 的 JVM 在eclipse.ini 文件中定义。您应该使用适用于 JVM 架构的版本。

【讨论】:

  • 这很奇怪,因为据我所知,我认为我的计算机上没有安装 32 位 JDK/JRE。我已经在所有地方指定了运行时环境,包括在 Eclipse.ini 文件中,它仍然认为它在 32 位计算机上运行。
  • 您使用的是什么版本的 Linux?一些安装额外的 JRE,例如对于 OpenOffice。您是如何安装 JRE 的?项目中的执行环境改了吗?
  • 我使用的是 Red Hat 5,我确实安装了多个 JDK,但我小心地将 linux 中的类路径更改为最新的 1.6。我还更改了项目中的所有环境和执行变量。事实上,我不知道我的计算机上安装了 32 位 jvm。出于某种原因,Eclipse 变得流氓并说它在 i386 计算机上并且它以 32 位模式运行。但是,当我走出 Eclipse 并运行他完全相同的命令时,它显示正确的 64 位和 amd64 计算机。
  • Eclipse 出了点问题。
  • 等等...你如何运行命令'System.getProperty("sun.arch.data.model");'在 Eclipse 里面?必须是某个项目...然后 Eclipse 运行时 JRE 不相关。
【解决方案6】:

好的。这很让人头疼,但我相信我有一个解决方案。更改 eclipse.ini 后,转到您的项目属性。在运行/调试设置下,编辑项目的启动配置。在 JRE 标记下,单击已安装的 JRE。当该对话框出现时,单击搜索。转到您的程序文件文件夹,而不是 x86 文件夹,然后让它搜索您的 JRE。当出现最新的时,取消选择当前选择的 JRE 并选择它找到的最新的 JRE。我重命名了我的 JRE7-64,这样我就可以找出不同之处。这解决了我的问题。祝你好运

【讨论】:

    【解决方案7】:

    我认为运行配置页面存在错误。

    我必须在运行配置中添加 64 位 JRE,选择它,然后删除 32 位条目(即使它已经被取消选择)。

    eclipse.ini 对我不起作用。

    这是 Eclipse Luna。

    【讨论】:

      猜你喜欢
      • 2014-03-31
      • 2011-03-11
      • 2013-09-16
      • 2011-05-13
      • 2010-11-27
      • 2014-02-19
      • 1970-01-01
      • 2016-07-17
      • 2011-03-01
      相关资源
      最近更新 更多