【问题标题】:%MY_VARIABLE% works in path on my laptop but not on windows server%MY_VARIABLE% 在我的笔记本电脑上的路径中工作,但在 Windows 服务器上不工作
【发布时间】: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


    【解决方案1】:

    这个问题是由于看到错误时 JAVA_VERSION 变量开头的引号字符 (") 引起的。类似于 ant error "The syntax of the command is incorrect." on running ant.bat 中发生的情况。

    【讨论】:

      猜你喜欢
      • 2013-08-23
      • 1970-01-01
      • 2018-06-20
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      相关资源
      最近更新 更多