0

正如书中所说,我正在尝试运行命令:wsgen -cp . ch01.team.Teams 在包含 .class 文件的文件夹中,但它会引发下一个错误:

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 raise NoClassDefFoundError exceptions and their answer,但它不起作用。

任何人都可以帮助我吗?

注意:我正在使用 Eclipse Juno,并且我已经在为我自己的 .class 文件生成的 src 文件夹中运行了该命令,并且我已经在 Eclipse 具有已编译的 .java 文件的 .class 文件的 bin 文件夹中运行了该命令。

4

1 回答 1

1

问题是您不必位于 .class 文件所在的文件夹中,例如,如果您的 .class 文件位于 /bin/team 文件夹中(此文件夹位于 YourProject/ 文件夹中),那么您必须在 bin 中运行命令。

起初我wsgen -cp . Teams跑进了 bin/team/ 文件夹,但后来我跑到wsgen -cp . team.Teams了 /bin 级别。

希望它可以提供帮助。

于 2018-10-15T22:37:36.957 回答