Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 其他可用类的NoClassDefFoundError_Java_Classpath_Classloader_Noclassdeffounderror - Fatal编程技术网

Java 其他可用类的NoClassDefFoundError

Java 其他可用类的NoClassDefFoundError,java,classpath,classloader,noclassdeffounderror,Java,Classpath,Classloader,Noclassdeffounderror,我想用java命令直接运行WsImport。我在设置CLASSPATH环境时使用以下命令: $ java com.sun.tools.ws.WsImport -d /home/bence/NetBeansProjects/WebFormsTest/build/generated-sources/jax-ws -Xendorsed -keep -B-jaxb-facets -wsdl -r /home/bence/NetBeansProjects/WebFormsTest/build/genera

我想用java命令直接运行WsImport。我在设置CLASSPATH环境时使用以下命令:

$ java com.sun.tools.ws.WsImport -d /home/bence/NetBeansProjects/WebFormsTest/build/generated-sources/jax-ws -Xendorsed -keep -B-jaxb-facets -wsdl -r /home/bence/NetBeansProjects/WebFormsTest/build/generated-sources/jax-ws/resources -s /home/bence/NetBeansProjects/WebFormsTest/build/generated-sources/jax-ws -verbose org.czentral.test.service.AdminService
并在标题中获取错误消息。详情如下:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/xjc/Plugin
    at java.lang.ClassLoader.findBootstrapClass(Native Method)
    at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1058)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:413)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
    at com.sun.istack.tools.MaskingClassLoader.loadClass(MaskingClassLoader.java:82)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:363)
    at java.util.ServiceLoader$1.next(ServiceLoader.java:445)
    at com.sun.tools.xjc.Options.findServices(Options.java:952)
    at com.sun.tools.xjc.Options.getAllPlugins(Options.java:374)
    at com.sun.tools.xjc.Options.parseArgument(Options.java:692)
    at com.sun.tools.ws.wscompile.WsimportOptions.parseArguments(WsimportOptions.java:326)
    at com.sun.tools.ws.wscompile.WsimportOptions.parseArguments(WsimportOptions.java:232)
    at com.sun.tools.ws.wscompile.WsimportTool.parseArguments(WsimportTool.java:359)
    at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:193)
    at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.sun.tools.ws.Invoker.invoke(Invoker.java:135)
    at com.sun.tools.ws.WsImport.main(WsImport.java:57)
好的,到目前为止,一个合理的解释是类路径中缺少一个.jar。但实际上我有一个合适的罐子,这一点可以通过以下几点得到证实:

$ java com.sun.tools.xjc.Plugin
Error: Main method not found in class com.sun.tools.xjc.Plugin, please define the main method as:
   public static void main(String[] args)
因此类加载器实际上可以加载该类


什么情况会导致这样的错误?

Java中的NoClassDefFoundError出现在Java虚拟机无法在运行时找到编译时可用的特定类时


更多信息请访问:

这是一个特定于平台的问题。代码是在一个平台中编译的,生成了一个特定于平台的jar,然后,尽管类和jar存在于您的类路径中,但java无法识别它。

谢谢,我很清楚异常是怎么说的。请阅读我问题的最后几段。谢谢你的回答,但我的诊断不仅仅基于.jar文件中可见的.class。请注意,在最后一个代码块中,类加载器成功加载了该类,并报告它没有main方法。