正如书中所述,我正在尝试在包含.class文件的文件夹中运行命令:wsgen -cp . ch01.team.Teams
,但会引发下一个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: bin/team/Teams (wrong name: team/Teams)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.sun.tools.internal.ws.wscompile.WsgenOptions.getClass(WsgenOptions.java:290)
at com.sun.tools.internal.ws.wscompile.WsgenOptions.validateEndpointClass(WsgenOptions.java:229)
at com.sun.tools.internal.ws.wscompile.WsgenOptions.validate(WsgenOptions.java:220)
at com.sun.tools.internal.ws.wscompile.WsgenTool.run(WsgenTool.java:116)
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:498)
at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:159)
at com.sun.tools.internal.ws.WsGen.main(WsGen.java:42)
顺便说一句,我已经在wsgen raising NoClassDefFoundError exceptions中阅读了该问题及其答案,但这没有用。
有人可以帮我吗?
注意: 我正在使用Eclipse Juno,并且已经在src文件夹中运行了该命令,为我自己生成了.class文件,并且已经在bin文件夹中运行了该命令,其中Eclipse具有已编译的.java文件的.class文件。
答案 0 :(得分:0)
问题是您不必位于.class文件所在的文件夹中,例如,如果您的.class文件位于/ bin / team文件夹中(此文件夹位于YourProject /文件夹中),则您必须在垃圾箱中运行命令。
起初,我将wsgen -cp . Teams
运行到bin / team /文件夹中,然后在/ bin级别运行了wsgen -cp . team.Teams
。
希望它可以提供帮助。