我正在开发一个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%中)
答案 0 :(得分:3)
我们这样做:
set programfiles32=%programfiles(x86)%
if "%programfiles32%"=="" set programfiles32=%programfiles%
copy foo.dll "%programfiles32%"
答案 1 :(得分:2)
这可能会让您大吃一惊,但是当您在未指定路径的情况下执行java.exe
或javaw.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中的可执行文件。