在Vista 32位和Win 7 64位中访问%ProgramFiles(x86)%的统一方式

时间:2011-03-21 17:35:58

标签: java windows-7 64-bit x86

我正在开发一个java应用程序并使用批处理文件进行部署。在工作中,我使用Vista 32位,在家里我使用win 7 64位。批处理文件调用java.exe来执行某些任务

由于Netbeans的一些问题,我被迫在32位java上进行开发(无论是在家还是在工作中),所以在家里我在%ProgramFiles(x86)%上安装了32位jdk我的开发以及%ProgramFiles%中的64位jre(用于其他东西)

是否有任何统一的方法来访问工作和家用计算机上的32位文件夹,因此我不必拥有两个批处理文件副本(主程序在%ProgramFiles(x86)%中调用java.exe和办公室一个调用默认java.exe(在%ProgramFiles%中)

2 个答案:

答案 0 :(得分:3)

我们这样做:

set programfiles32=%programfiles(x86)%
if "%programfiles32%"=="" set programfiles32=%programfiles%

copy foo.dll "%programfiles32%"

答案 1 :(得分:2)

这可能会让您大吃一惊,但是当您在未指定路径的情况下执行java.exejavaw.exe时,它会在C:\Windows\system32中执行副本。这些副本实际上是重定向器,它们读取注册表项以确定安装的最新Java版本。但是,可以通过JAVA_HOME环境变量覆盖它。

您可以在Windows中的“控制面板”,“系统”,“高级”选项卡,“环境变量”按钮下设置每个用户或系统范围的环境变量...或至少在XP工作机器上的位置。我似乎记得它仍然在我的Win7家用机器上的相同位置。

编辑:我忘记提及这一点,但JAVA_HOME的值应该是JVM / JDK主目录的路径。对于我的32位XP开发盒,那是C:\Program Files\Java\jdk1.6.0_24因为我的开发工具需要访问JDK中的可执行文件。