Java 为什么我能';t在jdk9 win10中运行struts2.5.13

Java 为什么我能';t在jdk9 win10中运行struts2.5.13,java,struts2,Java,Struts2,我遵循官方的指导,。但当我运行webapp时总是抛出异常。我尝试了很多次,但我真的不知道如何重新喜欢它 这是个例外 java.nio.file.InvalidPathException: Illegal char <:> at index 3: jar:file:\D:\.m2\repository\org\apache\struts\struts2-core\2.5.13\struts2-core-2.5.13.jar at java.base/sun.nio.fs.Windows

我遵循官方的指导,。但当我运行webapp时总是抛出异常。我尝试了很多次,但我真的不知道如何重新喜欢它

这是个例外

java.nio.file.InvalidPathException: Illegal char <:> at index 3: jar:file:\D:\.m2\repository\org\apache\struts\struts2-core\2.5.13\struts2-core-2.5.13.jar
at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229)
at java.base/java.io.File.toPath(File.java:2300)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:951)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:216)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:148)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:324)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:295)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:234)
at com.opensymphony.xwork2.util.fs.JarEntryRevision.needsReloading(JarEntryRevision.java:73)
at com.opensymphony.xwork2.util.fs.DefaultFileManager.fileNeedsReloading(DefaultFileManager.java:62)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:425)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.needsReload(StrutsXmlConfigurationProvider.java:163)
at com.opensymphony.xwork2.config.ConfigurationManager.needReloadContainerProviders(ConfigurationManager.java:208)
at com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:174)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:960)
at org.apache.struts2.dispatcher.ExecuteOperations.executeStaticResourceRequest(ExecuteOperations.java:59)
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:130)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.base/java.lang.Thread.run(Thread.java:844)
java.nio.file.InvalidPathException:索引3处的非法字符:jar:file:\D:\.m2\repository\org\apache\struts\struts2-core\2.5.13\struts2-core-2.5.13.jar
位于java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
位于java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
位于java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
位于java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
位于java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229)
位于java.base/java.io.File.toPath(File.java:2300)
位于java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:951)
位于java.base/java.util.zip.ZipFile(ZipFile.java:216)
位于java.base/java.util.zip.ZipFile(ZipFile.java:148)
位于java.base/java.util.jar.JarFile。(JarFile.java:324)
位于java.base/java.util.jar.JarFile。(JarFile.java:295)
位于java.base/java.util.jar.JarFile.(JarFile.java:234)
位于com.opensymphony.xwork2.util.fs.JarEntryRevision.needsReloading(JarEntryRevision.java:73)
位于com.opensymphony.xwork2.util.fs.DefaultFileManager.FileNeedsLoading(DefaultFileManager.java:62)
位于com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:425)
在org.apache.struts2.config.StrutsXmlConfigurationProvider.needsReload上(StrutsXmlConfigurationProvider.java:163)
在com.opensymphony.xwork2.config.ConfigurationManager.needReloadContainerProviders(ConfigurationManager.java:208)上
位于com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:174)
位于com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
位于org.apache.struts2.dispatcher.dispatcher.getContainer(dispatcher.java:960)
位于org.apache.struts2.dispatcher.ExecuteOperations.executeStaticResourceRequest(ExecuteOperations.java:59)
位于org.apache.struts2.dispatcher.filter.strutspreadexecutefilter.doFilter(strutspreadexecutefilter.java:130)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
位于org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
位于org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
位于org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
位于org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
位于org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
位于org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
位于org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
位于org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
位于org.eclipse.jetty.server.server.handle(server.java:370)
位于org.eclipse.jetty.server.AbstractHttpConnection.HandlerRequest(AbstractHttpConnection.java:494)
位于org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
位于org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
http.HttpParser.parseNext(HttpParser.java:644)
http.HttpParser.parseAvailable(HttpParser.java:235)
位于org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
位于org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
位于org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
位于java.base/java.lang.Thread.run(Thread.java:844)

删除路径前面的
jar:
文件:\

D:\.m2\repository...

正如下面Alan Bateman指出的,它采用的是文件路径,而不是URI。

好的,我知道原因。因为Struts现在不支持jdk9。您可以看到我创建的问题

在我看来,url“jar:file:\D:\.m2\”。。。。。不正确。您的URL似乎有误。@Smith您也可以共享您项目的pom.xml吗?我刚刚学习了官方教程,因此我的pom.xml与官方相同删除
文件:
前缀,JarFile构造函数采用文件路径,不是URI。但我不知道如何删除它。当我运行命令
mvnjetty:run
时,maven会自动完成。