Weblogic 12c - 启动管理服务器抛出语法错误
Weblogic12 - start Admin Server throws syntax error
我对 Weblogic12 有一个大问题。我尝试 运行 管理服务器,命令行就消失了,没有任何信息。所以我正在更深入地调试它,shortenPaths.cmd 文件中有一个问题,看起来像:
@rem **************************************************************************
@rem This script is used to shorten CLASSPATH and PATH environmental variables.
@rem
@rem Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
@rem **************************************************************************
if NOT "%CLASSPATH%"=="" (
call :handle_classpath
)
if NOT "%PATH%"=="" (
call :handle_path
)
goto :EOF
:handle_classpath
pause
set __SHORT_CLASSPATH__=
call :process_classpath "%CLASSPATH%"
set CLASSPATH=%__SHORT_CLASSPATH__%
goto :EOF
:handle_path
set __SHORT_PATH__=
call :process_path "%PATH%"
set PATH=%__SHORT_PATH__%
goto :EOF
:process_classpath
FOR /F "TOKENS=1,* DELIMS=;" %%a IN (%1) DO (
if NOT "%%a"=="" (
if exist "%%a" (
call :add_to_classpath %%~fsa
)
)
if NOT "%%b"=="" (
call :process_classpath "%%b"
)
)
goto :EOF
:add_to_classpath
if NOT "%1"=="" (
if NOT "%__SHORT_CLASSPATH__%"=="" (
set __SHORT_CLASSPATH__=%__SHORT_CLASSPATH__%;%1
) else (
set __SHORT_CLASSPATH__=%1
)
)
goto :EOF
:process_path
FOR /F "TOKENS=1,* DELIMS=;" %%a IN (%1) DO (
if NOT "%%a"=="" (
if exist "%%a" (
call :add_to_path %%~fsa
)
)
if NOT "%%b"=="" (
call :process_path "%%b"
)
)
goto :EOF
:add_to_path
if NOT "%1"=="" (
if NOT "%__SHORT_PATH__%"=="" (
set __SHORT_PATH__=%__SHORT_PATH__%;%1
) else (
set __SHORT_PATH__=%1
)
)
命令行抛出此错误:
if NOT "" == "" (call :handle_classpath )
The syntax of the command is incorrect.
所以我尝试在我自己的脚本中模拟相同的 if 语句:
set CLASSPATH=""
if NOT "%CLASSPATH%"=="" (
echo "inside"
)
pause
结果是:
C:\Tools\Weblogic12\oracle_common\common\bin>if NOT """" == "" (echo "inside" )
"inside"
C:\Tools\Weblogic12\oracle_common\common\bin>pause
Press any key to continue . . .
我不知道这个 Weblogic 是怎么回事。我什么也没做,只是尝试测试我的应用程序,但我无法启动它。两天前它工作正常,没有任何问题。反映最深的就是为什么Weblogic脚本中的命令行抛出错误而我自己的同样情况却没问题。
我找到了解决方案。 Path 环境变量有问题。当我使用 GUI 检查它时,当我在控制台中打印它时,存在差异。在控制台系统中添加指向 microsoft .net 框架的路径,该框架在末尾包含引号,这会导致问题。最重要的是,当我使用 GUI 将某些内容添加到 Path 并将其删除时,不再有指向 microsoft .net 的奇怪路径并且它开始正常工作...
我对 Weblogic12 有一个大问题。我尝试 运行 管理服务器,命令行就消失了,没有任何信息。所以我正在更深入地调试它,shortenPaths.cmd 文件中有一个问题,看起来像:
@rem **************************************************************************
@rem This script is used to shorten CLASSPATH and PATH environmental variables.
@rem
@rem Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
@rem **************************************************************************
if NOT "%CLASSPATH%"=="" (
call :handle_classpath
)
if NOT "%PATH%"=="" (
call :handle_path
)
goto :EOF
:handle_classpath
pause
set __SHORT_CLASSPATH__=
call :process_classpath "%CLASSPATH%"
set CLASSPATH=%__SHORT_CLASSPATH__%
goto :EOF
:handle_path
set __SHORT_PATH__=
call :process_path "%PATH%"
set PATH=%__SHORT_PATH__%
goto :EOF
:process_classpath
FOR /F "TOKENS=1,* DELIMS=;" %%a IN (%1) DO (
if NOT "%%a"=="" (
if exist "%%a" (
call :add_to_classpath %%~fsa
)
)
if NOT "%%b"=="" (
call :process_classpath "%%b"
)
)
goto :EOF
:add_to_classpath
if NOT "%1"=="" (
if NOT "%__SHORT_CLASSPATH__%"=="" (
set __SHORT_CLASSPATH__=%__SHORT_CLASSPATH__%;%1
) else (
set __SHORT_CLASSPATH__=%1
)
)
goto :EOF
:process_path
FOR /F "TOKENS=1,* DELIMS=;" %%a IN (%1) DO (
if NOT "%%a"=="" (
if exist "%%a" (
call :add_to_path %%~fsa
)
)
if NOT "%%b"=="" (
call :process_path "%%b"
)
)
goto :EOF
:add_to_path
if NOT "%1"=="" (
if NOT "%__SHORT_PATH__%"=="" (
set __SHORT_PATH__=%__SHORT_PATH__%;%1
) else (
set __SHORT_PATH__=%1
)
)
命令行抛出此错误:
if NOT "" == "" (call :handle_classpath )
The syntax of the command is incorrect.
所以我尝试在我自己的脚本中模拟相同的 if 语句:
set CLASSPATH=""
if NOT "%CLASSPATH%"=="" (
echo "inside"
)
pause
结果是:
C:\Tools\Weblogic12\oracle_common\common\bin>if NOT """" == "" (echo "inside" )
"inside"
C:\Tools\Weblogic12\oracle_common\common\bin>pause
Press any key to continue . . .
我不知道这个 Weblogic 是怎么回事。我什么也没做,只是尝试测试我的应用程序,但我无法启动它。两天前它工作正常,没有任何问题。反映最深的就是为什么Weblogic脚本中的命令行抛出错误而我自己的同样情况却没问题。
我找到了解决方案。 Path 环境变量有问题。当我使用 GUI 检查它时,当我在控制台中打印它时,存在差异。在控制台系统中添加指向 microsoft .net 框架的路径,该框架在末尾包含引号,这会导致问题。最重要的是,当我使用 GUI 将某些内容添加到 Path 并将其删除时,不再有指向 microsoft .net 的奇怪路径并且它开始正常工作...