Java 行为解释

Java 行为解释,java,jetty,Java,Jetty,有人能解释一下为什么这段代码在startFileHTTP()处停止吗?jetty服务器启动,但程序的其余部分不工作。我需要研究多线程编程吗 try { startFileHTTP(); } catch (Exception e) { e.printStackTrace(); } public void startFileHTTP() throws Exception { Server server = new Server(); SelectChanne

有人能解释一下为什么这段代码在startFileHTTP()处停止吗?jetty服务器启动,但程序的其余部分不工作。我需要研究多线程编程吗

try {
     startFileHTTP();
} catch (Exception e) {
     e.printStackTrace();
}

public void startFileHTTP() throws Exception {
     Server server = new Server();
     SelectChannelConnector connector = new SelectChannelConnector();
     connector.setPort(8080);
     server.addConnector(connector);

     ResourceHandler resource_handler = new ResourceHandler();
     resource_handler.setDirectoriesListed(true);
     resource_handler.setWelcomeFiles(new String[] { "index.html" });

     resource_handler.setResourceBase("/test");

     HandlerList handlers = new HandlerList();
     handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
     server.setHandler(handlers);

     server.start();
     server.join();
}
控制台:

2011-02-10 13:55:47.828:INFO::jetty-7.1.6.v20100715
2011-02-10 13:55:47.953:INFO::Started SelectChannelConnector@0.0.0.0:8080

我认为原因是函数的最后一行是

server.join();
此函数仅在
服务器
线程完成运行时返回。看起来这不是你想要的,因为看起来你希望它在后台运行。摆脱这条线应该可以解决这个问题

另外,您可能不应该从
startFileHTTP
抛出
Exception
。这使得可以抛出哪些异常变得不那么清楚,并且减少了调用方关于他们可能看到的错误类型的信息量