批处理文件以执行java应用程序
我有一个java应用程序,我想让我的Windows批处理文件执行。我可以知道为什么下面的批处理文件代码不起作用,以及如何更正它们吗?在继续检查64位Java之前,脚本应该首先检查32位Java 我还希望我的批处理文件能够处理Java6及以上版本,包括JRE或JDK环境。如何修改批处理文件以处理它们 批处理脚本:批处理文件以执行java应用程序,java,windows,batch-file,java-7,java-6,Java,Windows,Batch File,Java 7,Java 6,我有一个java应用程序,我想让我的Windows批处理文件执行。我可以知道为什么下面的批处理文件代码不起作用,以及如何更正它们吗?在继续检查64位Java之前,脚本应该首先检查32位Java 我还希望我的批处理文件能够处理Java6及以上版本,包括JRE或JDK环境。如何修改批处理文件以处理它们 批处理脚本: @ECHO OFF IF EXIST "C:\Program Files (x86)\Java" ( start C:\Program Files (x86)\Java\jre
@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
)
我认为,如果您试图预测所有可能的安装路径,您将是一个失败者。当然,如果Java在机器上可用,它已经在它的路径上,即通过以下方式可用:
java
同样在起始行中,假设硬编码的路径足够好,由于路径中有空格字符,因此需要在路径周围使用字符。执行路径中有空格字符。试试这个
@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 set,您可以尝试使用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
)
出于好奇,为什么要先32位?32位基本上是死机。如果我没有正确理解你的问题,你想从java程序中执行一个批处理文件吗?或者您正试图从批处理文件运行JavaShop.jar?这里有什么错误?也许名字中有空格是个问题。请尝试双引号。请告诉我们什么不起作用,以及您如何知道它不起作用。当您执行此脚本时,会发生什么?C:\ProgramFiles x86\Java\jre7\bin\Java-jar%~dp0\JavaShop.jar是否在任何脚本之外的提示符下工作?+1;e、 我从不在默认位置安装JDK和JRE。我以64位安装Java JDK,当我转到命令行键入Java时,它告诉我它无法识别。我需要特别转到64位Java来执行它,否则它将无法被识别。如果您无法转到C:\并运行Java,那么它就不在您机器的路径上。有关更多信息,请阅读:我运行了它,它说语法不正确,但没有指定。@thotheolh哪个版本?JAVA_HOME?我注意到,尽管系统中已经安装了JAVA 7,但我的JAVA_HOME没有设置。两个版本都有语法错误。