windows 执行java应用程序的批处理文件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8604259/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 18:43:18  来源:igfitidea点击:

Batch file to execute a java application

javawindowsbatch-filejava-7java-6

提问by thotheolh

I have a java application I would like my Windows batch file to execute. May I know why the following batch file codes do not work and how I can correct them ? The script should check for 32bit Java first before proceeding to check for 64 bit Java.

我有一个 Java 应用程序,我希望我的 Windows 批处理文件能够执行。我可以知道为什么以下批处理文件代码不起作用以及如何更正它们吗?在继续检查 64 位 Java 之前,脚本应首先检查 32 位 Java。

I would also like my batch file to handle Java 6 and above versions and inclusive of JRE or JDK environments. How would I modify my batch file to handle them.

我还希望我的批处理文件能够处理 Java 6 及更高版本,包括 JRE 或 JDK 环境。我将如何修改我的批处理文件来处理它们。

Batch Script:

批处理脚本:

@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
)

回答by Brian

I think you're onto a loser if you try to anticipate all likely install paths. Surely if Java's available on the machine, it's already on its path, i.e. available via just:

如果您试图预测所有可能的安装路径,我认为您就输了。当然,如果 Java 在机器上可用,它已经在它的路径上,即仅通过以下方式可用:

java

Also in your "start" line, and assuming a hardcoded path was good enough, you would need " chars around the path, due to the space character in it.

同样在您的“开始”行中,假设硬编码路径足够好,您将需要在路径周围使用 " 字符,因为其中包含空格字符。

回答by Efthymis

You have space characters in your execution path. Try this

您的执行路径中有空格字符。尝试这个

@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
)

The best thing to do though is to check if the environmental variable JAVA_HOME is set. If it is set, then java is installed in the system.

最好的办法是检查是否设置了环境变量 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
)

If you don't have a JAVA_HOME set you could just try the javacommand itself.

如果您没有 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
)