让jar以32bit jre运行

时间:2014-02-27 01:17:40

标签: java eclipse jvm

如何指定为了运行我创建的某个Java应用程序,您需要在系统上安装32位JRE?进一步如何指定java应用程序使用32位JRE而不是64位JRE(如果它们都已安装?)

背景:

我创建了一个使用第三方32位库的应用程序。应用程序无法在64位JRE中运行。

我将把这个应用程序分发给我公司的很多计算机,所以我需要能够在代码或导出过程中指定所需的JRE。

我正在使用eclipse,Kepler来开发和构建java应用程序。

3 个答案:

答案 0 :(得分:2)

java的想法总是编译一次并在任何地方运行,无论操作系统,CPU体系结构等,所以你可能会在这里走错方向。

但是,这里有一些您可能/不会发现有用的系统属性。我在列表中列出了属性键和值(我在Win7 64上运行Oracle JDK)

  • java.vm.name:Java HotSpot(TM)64位服务器VM
  • sun.arch.data.model:64
  • sun.cpu.isalist:amd64

要使用其中任何一个

String vmname = System.getProperty("java.vm.name");

答案 1 :(得分:0)

您无法直接在Java中执行此操作,因为此时您正在运行的JVM中。我的解决方案是编写一个dos批处理脚本来设置JAVA_HOME并在PATH的前面添加%JAVA_HOME%\bin。例如,我有sethome.bat,其中包含

@echo off
set "JAVA_HOME=c:\Program Files (x86)\Java\jre6"
set "PATH=%JAVA_HOME%\bin;%PATH%"

然后我用

call "%SERVICE_HOME%\sethome"
"%JAVA_HOME%\bin\java" -version
echo If this does not look correct press CTRL-C to cancel otherwise
pause

答案 2 :(得分:0)

您通常无法确定哪个程序运行您的jar。我可以将jar传递给acroread,或zip或其他任何东西,你无法做任何事情。

所以,我只是尝试加载库,并进行适当的错误/异常处理。谁知道?也许你的客户同时用64位版本替换了这个库,你不知道吗?所以,这个:加载,如果它不会被优雅的错误信息中止,那是唯一明智的做法。