对不起,我的英语不好。

我正在尝试从Windows上的Java启动Apache HTTPD服务器

   public static Process pp;

    @Override
    public void run() {
        try {

            Runtime run = Runtime.getRuntime();
            try {

                MyThread.pp = run.exec("usr/local/apache24/bin/httpd.exe");
                BufferedReader in = new BufferedReader(new InputStreamReader(MyThread.pp.getErrorStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    System.out.println(line);
                }


如果Apache HTTPD将启动而没有输出到控制台(没有错误和警告),则此代码将正确启动Apache HTTPD服务器(RAM中有两个进程),并且一切正常。

但是,如果Apache HTTPD服务器对控制台有任何输出,则此Java代码无法正确启动Apache HTTPD服务器。
例如,如果Apache HTTPD服务器将输出到控制台

AH00112: Warning: DocumentRoot [C:/Art/Dropbox/OpenSource/MyGIT/myprivatesite/]
does not exist
AH00548: NameVirtualHost has no effect and will be removed in the next release C
:/Art/MyServer/usr/local/apache24/conf/httpd.conf:535


Java只能启动Apache HTTPD服务器的一个进程,而他是行不通的。

如果他有任何控制台输出,如何启动Apache HTTPD服务器?

最佳答案

您是否尝试将所有3个流连接到控制台?我认为代码看起来不错。

关于java - Java问题在Apache httpd启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12420516/

10-09 07:22
查看更多