通过编程方式启动Tomcat服务

时间:2013-12-23 08:19:03

标签: java apache tomcat7

对不起,问傻傻的怀疑 我使用的是apache tamcat的zip版本,  当我手动启动意味着(通过点击startup.bat)tomcat服务启动没问题, 但是,如果我要通过java程序启动它显示以下错误

“未正确定义CATALINA_HOME环境变量 运行此程序需要此环境变量“

代码段:

public static void main(String args[]){
    Runtime runtime = Runtime.getRuntime();
    try {
        Process p1 = runtime.exec("cmd /c start D:\\Apache_Tomcat64\\bin\\startup.bat");
        InputStream is = p1.getInputStream();
        int i = 0;
        while( (i = is.read() ) != -1) {
            System.out.print((char)i);
        }
    } catch(IOException ioException) {
        System.out.println(ioException.getMessage() );
    }

我认为该问题是以管理员身份运行 但我不知道如何处理它 请任何建议或解决方案 谢谢你提前

1 个答案:

答案 0 :(得分:1)

我认为问题出在工作目录位置。

运行startup.bat时,它会尝试在您启动Java类的目录中找到catalina.bat文件,但不会在Tomcat所在的目录中找到。

您可以尝试使用下一种方式修改代码

    public static void main(String args[]){
        Runtime runtime = Runtime.getRuntime();
        try {
            File workingDirectory = new File("D:\\Apache_Tomcat64\\bin");
            Process p1 = runtime.exec("cmd /c start D:\\Apache_Tomcat64\\bin\\startup.bat", new String[0], workingDirectory);
            InputStream is = p1.getInputStream();
            int i = 0;
            while( (i = is.read() ) != -1) {
                System.out.print((char)i);
            }
        } catch(IOException ioException) {
            System.out.println(ioException.getMessage() );
        }
    }