我尝试将嵌入式jetty打包到jar文件中。但是所有的时间我都无法访问我的“家”jar目录,所有的html文件都在这里。这是我的启动器文件,我试图使用类加载器资源路径,但它始终为空。
我找到了几个获取jar路径的解决方案,但我需要访问jar中的文件,例如我的网页。
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
server.addConnector(connector);
ClassLoader cl = Launcher.class.getClassLoader();
System.out.println(cl);
URL f = cl.getResource("/index.html");
System.out.println(f);
String webDir = f==null ? "/" : f.toExternalForm();
System.out.println(webDir);
WebAppContext context = new WebAppContext("/", "/");
context.setResourceBase(webDir);
如果有人知道如何在我的罐子里设置正确的路径,请帮助我。
答案 0 :(得分:0)
你可能想这样做......
public static void main(String[] args) throws Exception
{
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(8080);
// Use only 1 connector
server.setConnectors(new Connector[] { connector });
// Figure out what path to serve content from
ClassLoader cl = Launcher.class.getClassLoader();
URL f = cl.getResource("/index.html");
String webDir = System.getProperty("user.dir");
if (f != null)
{
webDir = f.toExternalForm();
}
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setResourceBase(webDir);
server.setHandler(webapp); // add webapp to server
server.start(); // start server on its own thread
server.join(); // wait for server thread to stop
}