我在使用Runtime.getRuntime(),exec()执行tomcat的startup.bat,无法启动,出现如下错误: 
Using CATALINA_BASE:   "E:\Java\apache-tomcat-6.0.37" 
Using CATALINA_HOME:   "E:\Java\apache-tomcat-6.0.37" 
Using CATALINA_TMPDIR: "E:\Java\apache-tomcat-6.0.37\temp" 
Using JRE_HOME:        "E:\Java\jdk1.6.0_26" 
Using CLASSPATH:       "E:\Java\apache-tomcat-6.0.37\bin\bootstrap.jar" 
<ERROR> 
系统找不到文件 -Djava.util.logging.config.file=E:\Java\apache-tomcat-6.0.37\conf\logging.properties。 
但事实上E:\Java\apache-tomcat-6.0.37\conf\logging.properties文件存在的,不知道怎么回事?望各位童鞋能给我解惑!谢谢!
代码如下:
Runtime run = Runtime.getRuntime();//返回与当前 Java 应用程序相关的运行时对象  
        try {  
         String[] envp = { //环境变量设置
         "JAVA_HOME=E:\\Java\\jdk1.6.0_26", //Ant
         "CATALINA_HOME=E:\\Java\\apache-tomcat-6.0.37" //Tomcat
         };
            Process p = run.exec("E:\\Java\\apache-tomcat-6.0.37\\bin\\startup.bat", envp, new File("E:\\Java\\apache-tomcat-6.0.37"));// 启动另一个进程来执行命令 
            BufferedInputStream in = new BufferedInputStream(p.getInputStream());  
            BufferedReader inBr = new BufferedReader(new InputStreamReader(in));  
            //读取正常信息
            String lineStr;  
            while ((lineStr = inBr.readLine()) != null)  
                //获得命令执行后在控制台的输出信息  
                System.out.println(lineStr);// 打印输出信息  
            //读取错误信息 
            InputStream stderr = p.getErrorStream();
            InputStreamReader isr = new InputStreamReader(stderr);
            BufferedReader br = new BufferedReader(isr);
            String line = null;
            System.out.println("<ERROR>");
            while ( (line = br.readLine()) != null)
                System.out.println(line); 
          //检查命令是否执行失败。
            if (p.waitFor() != 0) {  
                if (p.exitValue() == 1)//p.exitValue()==0表示正常结束,1:非正常结束
                    System.err.println("命令执行失败!");  
            }  
            inBr.close();  
            in.close();  
        } catch (Exception ev) {  
            ev.printStackTrace();  
        }  

解决方案 »

  1.   

    环境变量配置下CATALINA_HOME
      

  2.   

    然后去掉envp 参数。
    用代码设置环境变量是这样的
    -Djava.util.logging.config.file=D:\Tomcat-6.0.35\conf\logging.properties但用系统设置环境变量启动后是这样
    -Djava.util.logging.config.file="D:\Tomcat-6.0.35\conf\logging.properties"我也不懂为什么
      

  3.   

    不行! envp是用来设置环境变量的,去掉以后会出现如下错误:
    The CATALINA_HOME environment variable is not defined correctly
    This environment variable is needed to run this program
      

  4.   

    另外我直接双击startup.bat是可以启动,就是通过java去调用就不行!太奇怪了!
      

  5.   

    在系统环境变量设置CATALINA_HOME
      

  6.   

    在系统环境变量设置CATALINA_HOME
    设置了,没用!