怎么用java 代码启动tomcat? 有人知道吗??

解决方案 »

  1.   

    可以使用RunTime直接调用Tomcat的启动命令,要注意写启动命令的时候最好是写完整路径。
    写个例子:
    [code]
    Runtime rt = Runtime.getRuntime();
    rt.exec("/var/tomcat/bin/startup.sh");
    [/code]
      

  2.   


    java.lang.Process p = java.lang.Runtime.getRuntime().exec("net start \"Apache Tomcat\""); 
          java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream())); 
          String s; 
          String t = "启动成功"; 
          boolean restart = false; 
          while ((s = in.readLine()) != null) { 
            if (s.indexOf(t) != -1) { 
              restart = true; 
              break; 
            } 
          } 在网上找的代码没搞懂这是怎么搞的???路径都没不知道怎么启动的??
      

  3.   

    示例代码:
    Runtime rt = Runtime.getRuntime();
    rt.exec("/var/tomcat/bin/startup.sh");
      

  4.   


     java.lang.Process p = java.lang.Runtime.getRuntime().exec("E:/tomcat5.5.25/bin/startup.bat"); 
    我改成这样还是不行
      

  5.   

    Runtime   runtime   =   Runtime.getRuntime(); 
    Process   process   =   runtime.exec( "C:\\Tomcat\\bin\\shutdown.bat "); 
    Process   process   =   runtime.exec( "C:\\Tomcat\\bin\\startup.bat "); http://topic.csdn.net/t/20040921/11/3393820.html
      

  6.   


    Runtime rt=Runtime.getRuntime(); 
    String cmd="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\bin\\tomcat6.exe";  rt.exec(cmd); 
      

  7.   

    exec里面的参数不对,在Windows下面需要使用\\,并且第一个\是转义符。
      

  8.   

    我发现启动别的。exe文件就可以,可是启动tomcat5.exe就不行,也没有错误提示,就是程序一直跑,关注中,敬请高人解答
      

  9.   

    1.新建bat.bat文件,内容如下:
    @echo off
    set CATALINA_HOME=D:\\tomcate\\tomcat6   --设置环境变量
    pause
    D:\\tomcate\\tomcat6\\bin\\startup.bat   --tomact的startup.bat路径
    2.Java代码如下:
    try {
    String command = "cmd.exe /C start /min C:\\bat.bat";
    Process child = Runtime.getRuntime().exec(command);
    } catch (IOException e) {
    e.printStackTrace();}给分吧!
      

  10.   

    请按任意键继续. . .
    The CATALINA_HOME environment variable is not defined correctly
    This environment variable is needed to run this programD:\zxhyworkspace\TianqueSMSServer>
      

  11.   

    java.lang.Runtime.getRuntime().exec()完全可以
      

  12.   


    看了这个贴子同上面的错一样的http://topic.csdn.net/t/20040921/11/3393820.html
    就是解决不了
      

  13.   


    怎么我的可以呢?是不是你在我电脑属性中已经把CATALINA_HOME的路径已经设置死了
      

  14.   

    startup.bat@echo off
    set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_04
    rem ---------------------------------------------------------------------------
    rem Start script for the CATALINA Server
    rem
    rem $Id: startup.bat 302918 2004-05-27 18:25:11Z yoavs $
    rem ---------------------------------------------------------------------------rem Guess CATALINA_HOME if not defined
    set CURRENT_DIR=%cd%
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=%CURRENT_DIR%
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    cd ..
    set CATALINA_HOME=%cd%
    cd %CURRENT_DIR%
    :gotHome
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    echo The CATALINA_HOME environment variable is not defined correctly
    echo This environment variable is needed to run this program
    goto end
    :okHomeset EXECUTABLE=%CATALINA_HOME%\bin\catalina.batrem Check that target executable exists
    if exist "%EXECUTABLE%" goto okExec
    echo Cannot find %EXECUTABLE%
    echo This file is needed to run this program
    goto end
    :okExecrem Get remaining unshifted command line arguments and save them in the
    set CMD_LINE_ARGS=
    :setArgs
    if ""%1""=="""" goto doneSetArgs
    set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
    shift
    goto setArgs
    :doneSetArgscall "%EXECUTABLE%" start %CMD_LINE_ARGS%:end
      

  15.   

    shutdown.bat
    @echoif "%OS%" == "Windows_NT" setlocal
    rem ---------------------------------------------------------------------------
    rem Stop script for the CATALINA Server
    rem
    rem $Id: shutdown.bat 302913 2004-05-27 15:05:01Z yoavs $
    rem ---------------------------------------------------------------------------rem Guess CATALINA_HOME if not defined
    set CURRENT_DIR=%cd%
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=%CURRENT_DIR%
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    cd ..
    set CATALINA_HOME=%cd%
    cd %CURRENT_DIR%:gotHome
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    echo The CATALINA_HOME environment variable is not defined correctly
    echo This environment variable is needed to run this program
    goto end:okHome
    set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
    rem Check that target executable exists
    if exist "%EXECUTABLE%" goto okExec
    echo Cannot find %EXECUTABLE%
    echo This file is needed to run this program
    goto end:okExec
    rem Get remaining unshifted command line arguments and save them in the
    set CMD_LINE_ARGS=:setArgs
    if ""%1""=="""" goto doneSetArgs
    set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
    shift
    goto setArgs:doneSetArgs
    call "%EXECUTABLE%" stop %CMD_LINE_ARGS%:end
      

  16.   

    public class CMDView {
    public static void main(String[] a) throws Exception
    {
    String start = "cmd /c  \"D:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\bin\\tomcat5w.exe\"";
    Process pro = Runtime.getRuntime().exec(start);
    }

    }
    这个启动了监视器
      

  17.   

    String start = "cmd /c  \"D:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\bin\\tomcat5.exe\"";
    Process pro = Runtime.getRuntime().exec(start);没明白楼主要达到什么效果,windows下这样就可以起来了
      

  18.   

    set CURRENT_DIR=%cd%
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=%CURRENT_DIR%你手动设置一下CATALINA_HOME然后再执行,这里需要这个脚本在他本身的文件夹执行才有效,所以你直接runtime.exec( "C:\\Tomcat\\bin\\startup.bat "); 
    CATALINA_HOME无法正确被复制
      

  19.   

    写一个bat或者sh 用什么runtime来执行
      

  20.   

    Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>e:E:\>E:\tomcat5.5.25\bin\startup.bat
    The CATALINA_HOME environment variable is not defined correctly
    This environment variable is needed to run this programE:\>
    我用命今都不能启动,但是双击startup.bat是能启动没有错的.是不是我那里没有配制???
      

  21.   

    给你说了,你需要去这个脚本所在文件夹去运行,不然CATALINA_HOME 无法被正确赋值
    不要再e:\来个E:\tomcat5.5.25\bin\startup.bat
    去E:\tomcat5.5.25\bin直接运行startup.bat
      

  22.   


    什么去 
    去E:\tomcat5.5.25\bin直接运行startup.bat
    没看懂 讲了是用JAVA启动
      

  23.   

    你在e:\时你试试
    echo %cd%
    那然后你说
    set CURRENT_DIR=%cd%
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=%CURRENT_DIR%
    之后CATALINA_HOME会是什么
      

  24.   


    C:\Documents and Settings\Administrator>e:\echo %cd%
    'e:\echo' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
      

  25.   

    你运行个程序和运行个脚本都是有运行路径的,是在哪个路径下运行,脚本中更是
    因为他们经常用到相对路径,tomcat这个也是如此,就算你从java里运行也要去他的所在文件夹运行.....
      

  26.   

    我服了
    在e:\盘符下输入echo %cd%
    .....
    看来我上面那些也白说了
      

  27.   

    C:\Documents and Settings\Administrator>e:\
    'e:\' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
      

  28.   

    我劝你还是下个安装版的,别用这些脚本了,直接在java里启动tomcat.exe就行了
    等之后有时间了你再来搞清楚这些东西
      

  29.   


    C:\Documents and Settings\Administrator>e:E:\>echo %cd%
    E:\E:\>echo %cd% set current_dir=%cd%
    E:\ set current_dir=E:\E:\>if not "%catalina_home%"=="" goto gotHome set catalina_home="current_dir"E:\>if not "%catalina_home%"=="" goto gotHomeE:\> set catalina_home="current_dir"E:\>
      

  30.   

    我彻底无语了,从c盘跳到e盘只需要输入
    e:
    在e:\盘符下输入echo %cd%
    这只是让你知道%cd%会输出什么
    但如果你连之后的
    set CURRENT_DIR=%cd%
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=%CURRENT_DIR%
    也看不懂的话,那就算了,安装注册服务那个版的,不需要启动服务,只需要你在java中以普通进程方式启动tomcat.exe就行了
      

  31.   

    两种方法
    1、把tomcat源码下下来部署在eclipse中运行
    2、用java的本地命令调用API执行tomcat中的startup.bat
      

  32.   

    To:LZ&楼上的各位。楼上的很多答案都是正确的,这个无需争论。问题是,到了我这边也是启动不起来,从我看到这个帖子开始我就尝试,方法试了一大堆,调用批处理,exe等,或者把批处理转换成exe我都尝试了,就是启动不起来。靠,NND,我很郁闷。但是,我尝试的那些方法调用其余的命令都是可以的,我都测试了,唯独这个tomcat不出现窗口,也不提示任何信息。我说下我的环境参考下,我估计是环境设置的问题。我机子上装了各个版本的tomcat有4个吧,环境变量tomcat的就设置了2套。其余的与tomcat有关的也没有想起来需要注意哪些。可以保证,tomcat单独运行都没有问题,可以正常启动,就是java代码调用的时候不管事。
    我也很希望知道原因...搭车同求解决方法...
      

  33.   

    对,如果你在e盘根目录下执行E:\tomcat5.5.25\bin\startup.bat
    此脚本运行目录会在e盘根目录下,这样当他执行到
    set CURRENT_DIR=%cd%
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=%CURRENT_DIR%(这一段是在脚本中的)
    时会首先把CURRENT_DIR设置成e:\然后把CATALINA_HOME设成了e:\这样肯定是错的
    所以要么你手动在系统环境变量中设置正确的CATALINA_HOME,要么在启动脚本时需要cd到E:\tomcat5.5.25\bin,然后再执行startup.bat
      

  34.   

    用安装版的tomcat直接安装,找到tomcat的windows服务,手工添加也行
    Runtime runtime = Runtime.getRuntime();  
    Process process = runtime.exec( "net start 服务名");  在开发时一般不这样做
      

  35.   

    C:\Documents and Settings\Administrator>E:\tomcat5.5.25\bin\startup.bat
    Using CATALINA_BASE:   E:\tomcat5.5.25
    Using CATALINA_HOME:   E:\tomcat5.5.25
    Using CATALINA_TMPDIR: E:\tomcat5.5.25\temp
    Using JRE_HOME:        C:\Program Files\Java\jdk1.6.0_04
    C:\Documents and Settings\Administrator>在 cmd 中这样可以启动了,可是在java中还是不行Runtime   runtime   =   Runtime.getRuntime(); 
    Process   process   =   runtime.exec("E:\\tomcat5.5.25\\bin\\startup.bat "); 继续求解
      

  36.   


    startup.bat必须在tomcat的bin目录运行
    你在C盘建一个bat.bat文件
    cd E:\tomcat5.5.25\bin    
    E:                           
    startup.bat代码
    try {
    String command = "cmd.exe /C start /min C:\\bat.bat";
    Process child = Runtime.getRuntime().exec(command);
    } catch (IOException e) {
    e.printStackTrace();}