0 0

java Runtime.getRuntime(),exec() 启动tomcat问题0

我在使用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();  
        }  
2013年12月24日 15:29

3个答案 按时间排序 按投票排序

0 0

http://www.oschina.net/question/927474_84637

2014年11月18日 16:32
0 0

环境变量也可以放到批处理文件里面,这样就不用再程序里面设置了。

2013年12月31日 11:06
0 0

直接执行E:\\Java\\apache-tomcat-6.0.37\\bin\\startup.bat这个批处理文件不可以吗,为什么还要加入其它的参数?

2013年12月24日 17:14

相关推荐

    Windows下 tomcat的守护进程、心跳程序

    java.lang.Process p = java.lang.Runtime.getRuntime().exec("net stop \"ApacheTomcat\""); java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream())); ...

    tomcat状态监测

    本文将详细解析如何通过Java编程来实现对Tomcat服务器的状态监测,包括启动、关闭以及重启操作。 #### 二、Tomcat状态监测的基础知识 1. **Tomcat简介**: - Apache Tomcat是一款开源的Servlet容器,它实现了...

    解决Java调用BAT批处理不弹出cmd窗口的方法分析

    Runtime.getRuntime().exec("cmd.exe /C start D:\\test.bat"); ``` 这段代码会打开一个新的CMD窗口并执行指定的批处理文件。这里的"start"命令用于启动一个新的进程,"/C"参数表示执行完cmd命令后关闭CMD窗口,而"D...

    java代码关闭tomcat程序及出现问题解析

    通过Runtime.getRuntime()方法,可以返回当前Java应用程序的运行时对象,然后使用exec()方法来执行指定的命令。在本文中,命令是"D:\\apache-tomcat-8.5.39\\bin\\shutdown.bat",用于关闭Tomcat程序。 知识点2: ...

    检测Tomcat运行状态-自动重启

    - **执行启动脚本**:通过Java的`Runtime.getRuntime().exec()`方法执行Tomcat安装目录下的启动脚本(如`startup.bat`)来启动服务。 - **监控日志**:可以监控Tomcat启动过程中的输出信息,确认服务是否成功启动...

    Java开启/关闭tomcat服务器的方法

    Java开启/关闭Tomcat服务器的方法是指使用Java语言来控制Tomcat服务器的启动和关闭。在本文中,我们将介绍使用Java语言来开启和关闭Tomcat服务器的方法,并提供了详细的代码实现和错误处理。 知识点1:使用Runtime...

    JAVA实现监测tomcat是否宕机及控制重启的方法

    这里使用`Runtime.getRuntime().exec()`执行Linux命令`/etc/init.d/tomcat6 stop`来停止服务。然后读取停止服务的输出,判断是否成功停止。如果找到了"Stopping"字符串,说明停止操作成功。 5. **日志输出**:在每...

    Java 免费给手机发飞信

    3. **安全考虑**:对于执行命令的部分(`Runtime.getRuntime().exec()`),需要谨慎使用,避免执行恶意代码导致的安全问题。 通过上述分析,我们可以了解到如何利用Java和第三方库来实现免费发送飞信的功能,这对于...

    服务器维护整理文档

    Runtime.getRuntime().exec("/home/surfnuoter/upload.sh " + realpath + "/" + apkFileName + " " + "surfingclub/apk"); ``` - **解析**: - 通过`Runtime.getRuntime().exec()`执行外部脚本。 - 参数解释: -...

    websocket日志实时推送

    4. 使用`Runtime.getRuntime().exec()`执行`tail -f`命令,并监听其输出流,每当有新的日志条目,就通过WebSocketSession的sendText方法将日志内容发送到客户端。 5. 客户端JavaScript交互:在Web页面上,使用...

    Java表达式攻防下的黑魔法-release

    .getEngineByName("js").eval("java.lang.Runtime.getRuntime().exec(\"open /\")")} ``` - 这段代码首先创建了一个`ScriptEngineManager`实例,然后通过JavaScript引擎执行了一个命令,最终调用了`Runtime.exec`...

    java在linux系统下开机启动无法使用sudo命令的原因及解决办法

    Java代码尝试使用`Runtime.getRuntime().exec("sudo /sbin/poweroff")`来执行关机命令,这需要有相应权限的用户才能执行。为了解决这个问题,开发者在`/etc/sudoers`文件中为chb用户添加了允许无密码执行`reboot`和`...

    JSP在线考试系统

    - **Runtime.getRuntime().exec()**:通过Java API调用外部命令行程序。 - **注意事项**:处理程序的输入输出流,确保正确执行。 #### 五、总结与展望 基于J2EE架构的在线考试系统具有显著的优势,不仅可以有效...

Global site tag (gtag.js) - Google Analytics