Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
批处理—确定是否安装了java_Java_Windows_Batch File_Terminal_Command Prompt - Fatal编程技术网

批处理—确定是否安装了java

批处理—确定是否安装了java,java,windows,batch-file,terminal,command-prompt,Java,Windows,Batch File,Terminal,Command Prompt,首先,我对批处理脚本一点经验都没有 正如标题已经告诉我们的,我试图从bat文件中找出系统上是否安装了java。我已经检查了很多方法,但其中大多数似乎比完成这项工作所需的更复杂 到目前为止,我的想法是将java-version的结果保存到一个变量中,然后检查是否确实存在结果,或者是否无法找到java命令。遗憾的是,我甚至不知道如何将java-version的输出保存到一个变量中,以便进行比较 如果有人能帮助我的想法或有一个不同的简单的解决我的问题的方法,我会很高兴,如果你能帮助我。谢谢 尝试在脚本

首先,我对批处理脚本一点经验都没有

正如标题已经告诉我们的,我试图从bat文件中找出系统上是否安装了
java
。我已经检查了很多方法,但其中大多数似乎比完成这项工作所需的更复杂

到目前为止,我的想法是将
java-version
的结果保存到一个变量中,然后检查是否确实存在结果,或者是否无法找到
java
命令。遗憾的是,我甚至不知道如何将
java-version
的输出保存到一个变量中,以便进行比较


如果有人能帮助我的想法或有一个不同的简单的解决我的问题的方法,我会很高兴,如果你能帮助我。谢谢

尝试在脚本中使用
java-version
命令,并将其保存为如下变量:
isJavaInstalled=“$(java-version)”
。如果安装了Java,变量应包含如下内容:
java版本“1.8.0131”
Java(TM)SE运行时环境(build 1.8.0_131-b11)
Java HotSpot(TM)64位服务器虚拟机(构建25.131-b11,混合模式)
,否则变量为空。 您还可以尝试检查
JAVA\u HOME
系统变量的值,该变量应包含安装JAVA的路径。

请尝试以下操作:

where java >nul 2>nul
if %errorlevel%==1 (
    @echo Java not found in path.
    exit
)

>nul
2>nul
是可选的,仅用于将
where
命令输出静音。

对于基于Unix的shell来说,这是一个很好的解决方案。但是我认为这在Windows
.bat
文件上不起作用……你是对的,但是
java-version
的方法应该是可行的。所以也许
wherejava
echo%java\u HOME%
会有帮助吗?是的!请看我的答案;)