抱歉我的英语不好。
我正在尝试从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 Server。 例如,如果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服务器?
答案 0 :(得分:1)
您是否尝试将所有3个流连接到控制台?我认为代码看起来很不错。