升级了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