0

私の悪い英語を申し訳ありません。

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 に 2 つのプロセスを使用)、すべて正常に動作します。

しかし、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 サーバーの 1 つのプロセスのみを開始し、彼は動作できません。

コンソール出力がある場合、Apache HTTPD サーバーを起動するにはどうすればよいですか?

4

1 に答える 1

1

3 つのストリームすべてをコンソールに接続しようとしましたか? コードはかなり良いと思います。

于 2012-09-14T08:19:53.630 に答える