ja我想实现这样一个功能:
在java中调用dos命令实现重启weblogic8.1现在我尝试用java调用一个批处理关闭weblogic8.1
然后再调用一个批处理启动weblogic8.1
可是调用关闭的批处理的时候总是不成功,好像是要求 有正确的 用户名和密码才能关闭但是直接双击关闭weblogic的批处理 就可以关闭weblogic8.1
调用启动weblogic的批处理 可以启动weblogic8.1,但是看不到启动后的dos界面

解决方案 »

  1.   

    你看下 启动weblogic那个批处理 只有你能在java里面实现批处理里面的逻辑就可以了8.1那个批处理还是很简单的另外
    启动看不到界面你可以试试用 call xx.bat 或在写个bat调启动weblogic的批处理 至于关闭可能是出于安全考虑你应该kill掉weblogic进程
      

  2.   

    我试过了,还是不行!
    用call xx.bat 或者bat都不管用
      

  3.   

    @ECHO OFF@REM WARNING: This file is created by the Configuration Wizard.
    @REM Any changes to this script may be lost when adding extensions to this configuration.SETLOCAL@REM *************************************************************************
    @REM This script is used to stop WebLogic Server created by Config Wizard
    @REM Usage: stopWebLogic [username] [password] [server-name] [admin-url]
    @REM The default value of server-name is myserver
    @REM The default value of admin-url is t3:\\localhost:80
    @REM For additional information, refer to the WebLogic Server Administration
    @REM Console Online Help(http:\\e-docs.bea.com\wls\docs81\ConsoleHelp\startstop.html)
    @REM *************************************************************************if NOT "%1"=="" (
    set UIDPWD=-username %1
    shift
    )if NOT "%1"=="" (
    set UIDPWD=%UIDPWD% -password %1
    shift
    )if ""=="true" (
    if "%UIDPWD%"=="" (
    echo ERROR: Because your domain was created as a production mode domain. 
    echo You MUST include a username parameter that can be used to shutdown Weblogic Server
    pause
    GOTO :EOF
    )
    )@REM set server nameset SERVER_NAME=myserverif NOT "%1"=="" (
    set SERVER_NAME=%1
    shift
    )if "%SERVER_NAME%"=="" (
    echo ERROR: Missing Server Name. 
    echo Usage: stopWebLogic.cmd^(sh^) [username] [password] [server-name] [admin-url]
    pause
    GOTO :EOF
    )@REM set ADMIN_URLif NOT "%1"=="" (
    set ADMIN_URL=%1
    shift
    ) else (
    if "%ADMIN_URL%"=="" (
    set ADMIN_URL=t3://127.0.0.1:80
    )
    )@REM Call commEnv here.call "D:\bea\weblogic81\common\bin\commEnv.cmd"echo Stopping Weblogic Server...%JAVA_HOME%\bin\java -cp %WEBLOGIC_CLASSPATH% weblogic.Admin FORCESHUTDOWN -url %ADMIN_URL% %UIDPWD% %SERVER_NAME%  2>&1 echo DoneENDLOCALexit======================================
    以上是我的stopWebLogic.cmd中的内容,请高手指点一下,直接双击关闭这个批处理   就可以关闭weblogic8.1,但是在java中总是不能成功调用
    java中代码如下:
      public void restartWeblogic() {
    String cmdText1="cmd.exe /c ";
    cmdText1 = cmdText1
    + " D:\\bea\\user_projects\\domains\\mydomain\\stopWebLogic.cmd";
    + " java weblogic.Admin -url t3://127.0.0.1:80 -username weblogic -password weblogic FORCESHUTDOWN myserver";
    Process process;
    String msg;
    process = Runtime.getRuntime().exec(cmdText);
    BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream())); 
    while ( (msg=bufferedReader.readLine()) != null) 
    System.out.println(msg); 
    process.waitFor();

    }
     1.如果用蓝色的那句程序运行将提示如下信息:
           Stopping Weblogic Server...
         WebLogic Server ,需要有效的用户名和密码执行命令。请再试行。
          使用例子: java [<SSL trust options>][<boot identity options>] weblogic.Admin [[-url |-adminurl]
         [<protocol>://]<listen-address>:<port>]-username <username>[-password <password> FORCESHUTDOWN [<targetServer>]各值的说明如下。
    <targetServer>= 关闭服务器的名字。指定的值不存在的情况,这个指令关闭用 -url 参数指定了的服务器 。 2.如果用红色的那句调用的时候什么反应也没有。
      

  4.   

    " D:\\bea\\user_projects\\domains\\mydomain\\stopWebLogic.cmd 用户名 密码";