Nexus啟動失敗處理:The nexus service was launched, but failed to start.
升級了JDK為1.9後,Nexus啟動就失敗了:
C:\Users\abc>nexus start
wrapper | Starting the nexus service...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | The nexus service was launched, but failed to start.
請按任意鍵繼續. . .
檢視%Nexus_HOME%下logs目錄下的日誌檔案,如下:
jvm 1 | Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext
jvm 1 | at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466) ~[na:na]
jvm 1 | at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:421) ~[jetty-webapp-8.1.16.v20140903.jar:8.1.16.v20140903]
jvm 1 | at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) ~[jetty-webapp-8.1.16.v20140903.jar:8.1.16.v20140903]
jvm 1 | at org.apache.felix.framework.BundleWiringImpl.doImplicitBootDelegation(BundleWiringImpl.java:1738) ~[na:na]
jvm 1 | at org.apache.felix.framework.BundleWiringImpl.searchDynamicImports(BundleWiringImpl.java:1675) ~[na:na]
jvm 1 | at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1511) ~[na:na]
jvm 1 | at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) ~[na:na]
jvm 1 | at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) ~[na:na]
jvm 1 | at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) ~[na:na]
jvm 1 | at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
jvm 1 | at java.base/java.lang.Class.forName(Class.java:375) ~[na:na]
jvm 1 | at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) ~[na:na]
jvm 1 | ... 47 common frames omitted
wrapper | <-- Wrapper Stopped
wrapper | The nexus service was launched, but failed to start.
初步斷定是安裝了JDK9後,Nexus配置檔案的問題:
在Nexus安裝目錄下,找到【\~\bin\jsw\conf】資料夾,開啟【wrapper.conf】檔案
找到這行:
# Set the JVM executable
下面有【wrapper.java.command=....】
將這行更改為【wrapper.java.command=自己的JDK安裝目錄\bin\java】即可(我修改為之前的jdk8的路徑就可以了)。
以我的JDK安裝目錄為例子
wrapper.java.command=C:\Program Files (x86)\Java\jdk1.8.0_40\bin\java