Maven сделает это автоматически.

довал официальному учебнику,http://struts.apache.org/getting-started/how-to-create-a-struts2-web-application.html, Но всегда запускаю исключение, когда я запускаю 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)

Исключительная картина

 Roman C09 окт. 2017 г., 18:03
Кажется, у вас неправильный URL.
 Smith Cruise11 окт. 2017 г., 08:14
Я просто следовал официальному учебнику, поэтому мой pom.xml такой же, как официальный
 Naman09 окт. 2017 г., 18:52
@ Смит Не могли бы вы также поделиться pom.xml вашего проекта.
 M. le Rutte09 окт. 2017 г., 12:11
Сдается мне, что url 'jar: file: \ D: \. M2 \' ..... неверен.

Ответы на вопрос(2)

Удалитьjar: а такжеfile:\ до пути

D:\.m2\repository...

Как указывает Алан Бейтман ниже, он принимает путь к файлу, а не URI.

 achAmháin09 окт. 2017 г., 12:25
Да - моя ошибка Ответ обновлен.
 Smith Cruise09 окт. 2017 г., 14:02
Но я не знаю, как его удалить. Когда я запускаю командуmvn jetty:runMaven сделает это автоматически.
 Alan Bateman09 окт. 2017 г., 12:18
Удалитьfile: Префикс также, конструктор JarFile принимает путь к файлу, а не URI.
Решение Вопроса

я знаю причину. Потому что Struts сейчас не поддерживает jdk9. Вы можете увидеть проблему, которую я создал.https://issues.apache.org/jira/projects/WW/issues/WW-4869?filter=allopenissues

Ваш ответ на вопрос