我有一个java应用程序,我希望我的Windows批处理文件能够执行。我可以知道为什么以下批处理文件代码不起作用以及我如何纠正它们?在继续检查64位Java之前,脚本应首先检查32位Java。
我还希望我的批处理文件能够处理Java 6及更高版本,并且包含JRE或JDK环境。如何修改我的批处理文件来处理它们。
批处理脚本:
@ECHO OFF
IF EXIST "C:\Program Files (x86)\Java" (
start C:\Program Files (x86)\Java\jre7\bin\java -jar %~dp0\JavaShop.jar
) ELSE (
IF EXIST "C:\Program Files\Java" C:\Program Files\Java\jre6\bin\java -jar %~dp0\JavaShop.jar
ELSE ECHO Java software not found on your system. Please go to http://java.com/en/ to download a copy of Java.
PAUSE
)
答案 0 :(得分:6)
如果您尝试预测所有可能的安装路径,我认为您将成为失败者。当然,如果Java在机器上可用,它已经在它的路径上,即只能通过以下方式获得:
java
同样在你的“开始”行中,假设硬编码路径足够好,由于其中的空格字符,你需要“路径周围的字符。”
答案 1 :(得分:1)
您的执行路径中有空格字符。试试这个
@ECHO OFF
IF EXIST "C:\Program Files (x86)\Java\jre7" (
start "C:\Program Files (x86)\Java\jre7\bin\java.exe" -jar %~dp0\JavaShop.jar
) ELSE (
IF EXIST "C:\Program Files\Java\jre6"
start "C:\Program Files\Java\jre6\bin\java.exe" -jar %~dp0\JavaShop.jar
ELSE ECHO Java software not found on your system. Please go to http://java.com/en/ to download a copy of Java.
PAUSE
)
最好的办法是检查是否设置了环境变量JAVA_HOME。如果已设置,则在系统中安装java。
@ECHO OFF
IF EXIST %JAVA_HOME% (
start %JAVA_HOME%\bin\java.exe -jar %~dp0\JavaShop.jar
) ELSE (
ECHO Java software not found on your system. Please go to http://java.com/en/ to download a copy of Java.
PAUSE
)
如果您没有设置JAVA_HOME,则只需尝试java
命令。
@ECHO OFF
IF EXIST java (
start java -jar %~dp0\JavaShop.jar
) ELSE (
ECHO Java software not found on your system. Please go to http://java.com/en/ to download a copy of Java.
PAUSE
)