在使用Java 8的OSX上,如果我调用命令
wsimport
我收到以下错误
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/xml/internal/ws/util/localization/LocalizableMessageFactory
at com.sun.tools.internal.ws.resources.WscompileMessages.<clinit>(WscompileMessages.java:40)
at com.sun.tools.internal.ws.wscompile.WsimportOptions.validate(WsimportOptions.java:263)
at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:159)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:120)
at com.sun.tools.internal.ws.WsImport.main(WsImport.java:42)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.ws.util.localization.LocalizableMessageFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 9 more
如果我尝试命令检查版本:
wsimport -version
它不会抛出错误并显示版本:
JAX-WS RI 2.2.4-b01
这是任何已知错误还是有任何修复/解决方法?
答案 0 :(得分:1)
我遇到了与Java 8类似的问题。 当我运行wsimport时,我首先得到一个错误,即缺少一个主类。 然后我试着清理我的路径/类路径,就像@Angelo Fuchs提到的那样。 然后wsimport提出了相同的NoClassDefFoundError @Jan has。
最后我重新安装了一个全新的SDK,包括jdk和jre,确保两者都安装在不同的位置,因为我担心安装程序会覆盖jdk安装目录中的文件,因为jdk安装程序已经创建一个名为“jre”的目录
重新安装后一切都很好
答案 1 :(得分:0)
我切换回java版本6然后它工作正常。
答案 2 :(得分:0)
我遇到了类似的问题。
对我而言,java
命令是用Java 8启动的,但classpath
包含Java 7 jar。
在我确保将JAVA环境变量等修复为所有指向同一Java之后,它运行良好。
答案 3 :(得分:-1)
关闭日食并删除你的&#34;目标&#34;文件夹放在你的项目目录中并在maven clean中打开eclipse运行