Batch file Weblogic12-启动管理服务器引发语法错误
我对Weblogic12有一个大问题。我试着运行管理服务器,命令行在没有任何信息的情况下消失了。所以我对它进行了深入的调试,shortenpath.cmd文件中出现了一个问题,看起来像:Batch file Weblogic12-启动管理服务器引发语法错误,batch-file,cmd,weblogic,Batch File,Cmd,Weblogic,我对Weblogic12有一个大问题。我试着运行管理服务器,命令行在没有任何信息的情况下消失了。所以我对它进行了深入的调试,shortenpath.cmd文件中出现了一个问题,看起来像: @rem ************************************************************************** @rem This script is used to shorten CLASSPATH and PATH environmental variabl
@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 framework的路径,该路径末尾包含导致问题的引号。最重要的是,当我使用GUI向Path添加某些内容并将其删除时,microsoft.net不再有奇怪的路径,它开始正常工作…因为您怀疑类路径,你先设置类路径,比如说执行setDomainEnv.sh,然后启动管理服务器,我假设你使用的是startWebLogic.sh,没错,我使用startWebLogic.cmd启动weblogic,但是命令行消失了,所以我开始调试它,我停止了这个问题。这很奇怪,因为我没有用它做任何事情,它只是停止了工作。startWebLogic.cmd调用setDomainEnv.cmd,它调用另一个我不记得的文件,现在无法检查它,因为我没有工作,这个文件名为shortenPath.cmd,这导致了这个问题。如果这些文件是Oracle提供的,如果它们不工作,那将是非常奇怪的——除非它们已经被更改了……但是我想你已经确认没有任何更改。是的,因为你在Windows上,它的.cmd不是.sh!两天前,它工作得很好,我只是没有对它做任何事情,因为我没有使用java,所以我不必部署应用程序。现在我必须检查一些东西,并试图像以前一样启动服务器,没有任何更改,但它不工作。我想知道是否有任何更新可能会造成一些问题