在64位Windows上使用32位JVM运行32位Eclipse

5
我正在使用的一个.jar文件只能在Windows上的32位Java虚拟机上运行。我安装了32位版本的Eclipse和JDK,但仍然出现相同的错误。我应该在运行配置中使用哪些命令来指定32位虚拟机来运行使用此.jar文件的应用程序?
-vm C:\ Program Files(x86)\ Java \ jre6 \ bin \ javaw.exe 不起作用。有什么想法吗?

2
如果 -vm 参数包含空格,则需要将其放在双引号中。 - Thorbjørn Ravn Andersen
1
问题在于 System.getProperty("os.arch") 报告的是 amd64。 - Tamas
请修改您的问题,以准确反映您实际要问的内容。 - Thorbjørn Ravn Andersen
4个回答

4
使用Eclipse进行开发时,有两个JVM在运行。一个用于运行Eclipse本身,另一个用于运行您的程序。
除非您谈论的是插件,否则您需要担心的是后者。删除-vm选项,使Eclipse使用默认JRE启动。然后转到首选项-> Java->已安装的JRE,并添加您的32位Java安装并将其设置为默认值(这是关键)。
如果您的应用程序使用的JVM发生更改,则完成了。
如果没有更改,您应该从新的工作区开始,添加32位JVM并像以前一样创建项目。

我的问题是String arch = System.getProperty("os.arch"); 报告我有一个64位版本。即使我添加了32位jre到已安装的jvms(如上所述),它仍然报告amd64。 - Tamas
os.arch 反映的是 Windows 的架构,而不是 JVM 的架构。这为什么很重要?你不能编辑的代码是否依赖于此? - Thorbjørn Ravn Andersen
是的,不幸的是...如果 os.arch 是 amd64,那么它将加载不存在的 64 位版本。 - Tamas

2

请查看这个页面:

http://wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F

如果您在eclipe.ini中指定了VM,则必须在特定行(我想是这样的)中指定。

您更改过您的已安装的VMs吗?

窗口 -> 首选项 -> Java -> 已安装的JRE

其中可以找到64位的VM。

通过-vm参数,您可以指定启动Eclipse所需的JRE。通过已安装的VMs,您可以指定运行代码所需的VM。


1
我的问题是String arch = System.getProperty("os.arch"); 报告我有一个64位版本。即使我添加了32位jre到已安装的jvms(如上所述),它仍然报告amd64。 - Tamas

0

你在Eclipse中运行项目所使用的JVM是在项目的“运行配置”中定义的,右键单击项目,然后选择“Run as”,再选择“Run configurations...”。在打开的窗口中,确保左侧菜单中选择了你的主类(用于启动程序的类),选择“JRE”选项卡,然后选择相应的JRE(在你的情况下,选择32位版本)。通过单击“run”关闭窗口以查看是否成功。


0

虚拟机有很多版本,让我们逐个了解一下:

JRE 32位、JRE 64位、JDK 32位、JDK 64位。

如果您使用的是64位操作系统,您应该能够安装所有这些版本。我已经在我的计算机上安装了它们,但是您必须按照特定的顺序进行安装,就像我刚才描述的那样:先安装JRE 32位,然后是JRE 64位,接着是JDK 32位和JDK 64位。如果以其他顺序安装可能会导致问题。为了保险起见,我建议您删除已安装的所有虚拟机(JavaRa可以帮助您轻松完成:http://singularlabs.com/software/javara/javara-download/),然后按照所述顺序进行安装。

即使您使用64位操作系统,仍然有一些原因需要运行32位Eclipse,其中之一是某些套件和工具不支持64位版本。

不要忘记设置:

JAVA_HOME: .;JDK32 PATH\bin;JDK64 PATH\bin

PATH: .;JDK32 PATH\bin;JDK64 PATH\bin

在设置新的环境变量时,将 .; 放在值的最前面总是一个好习惯。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接