代码之家  ›  专栏  ›  技术社区  ›  Rafał Sokalski

WebLogic12-启动管理服务器引发语法错误

  •  0
  • Rafał Sokalski  · 技术社区  · 6 年前

    我对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脚本中抛出错误,而在我自己的脚本中,同样的情况也可以正常工作。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Rafał Sokalski    6 年前

    我找到了解决办法。路径环境变量有问题。当我使用GUI检查它时,当我在控制台中打印它时,有一些不同。在控制台系统中,添加指向Microsoft.NET Framework的路径,该路径在结尾处包含导致问题的引号。最重要的是,当我使用图形用户界面将某些内容添加到Path并删除它时,到Microsoft.NET的路径就不再奇怪了,它开始正常工作了…