【发布时间】:2023-01-30 17:20:47
【问题描述】:
我使用一个环境变量来定义 Java 的路径,这样我就可以更改我正在使用的 Java 版本(.bat 文件显示在本文末尾)。
整个事情取决于创建一个 %JAVA_VERSION% 环境变量,然后在路径中使用它。这一切都适用于我的笔记本电脑。当我在 Path 环境变量中使用 %JAVA_VERSION% 时,它被正确解析为环境变量的值,如下所示。
但是,当我在 AWS EC2 实例上执行此操作时,%JAVA_VERSION% 变量未解析,如下所示,并且在 cmd 提示符下运行“java”不起作用。
有没有办法让它在 Windows Server 上运行(服务器的详细信息如下所示)
这是用于切换 Java 版本的 .bat 文件:
:: ---
::
:: SCRIPT TO SET JAVA VERSION
::
:: ---
@echo off
echo.
echo.
if "%~1"=="" goto error
if %1%==8 goto v8
if %1%==11 goto v11
echo Valid Input Is:
echo 8
echo 11
echo.
:v8
echo Setting Java Version to 1.8
set JAVA_VERSION=C:\_YES\tools\java\jdk1.8.0_261\bin
set JAVA_HOME="C:\_YES\tools\java\jdk1.8.0_261\
setx JAVA_VERSION C:\_YES\tools\java\jdk1.8.0_261\bin
setx JAVA_HOME C:\_YES\tools\java\jdk1.8.0_261\
goto endif
:v11
echo Setting Java Version to 11.0.11
set JAVA_VERSION=C:\_YES\tools\java\jdk-11.0.11\bin
set JAVA_HOME="C:\_YES\tools\java\jdk-11.0.11\
setx JAVA_VERSION C:\_YES\tools\java\jdk-11.0.11\bin
setx JAVA_HOME C:\_YES\tools\java\jdk-11.0.11\
goto endif
:v1.17
echo Setting Java Version to 1.17
set JAVA_VERSION=C:\program_files\Java\jdk-17.0.2\bin
set JAVA_HOME=C:\program_files\Java\jdk-17.0.2\
setx JAVA_VERSION C:\program_files\Java\jdk-17.0.2\bin
setx JAVA_HOME C:\program_files\Java\jdk-17.0.2\
goto endif
:error
echo ! ! ! JAVA VERSION NOT SET ! ! !
echo Java version must be 8 or 11
goto endif
goto end
:endif
set path=%JAVA_VERSION%;%PATH%
:end
echo Current JAVA_VERSION is %JAVA_VERSION%
@echo on
java -version
@echo off
echo.
echo.
echo Done.
echo.
echo.
【问题讨论】:
标签: windows environment-variables