XML校验之sun.tools.internal.xjc.Driver

最近在用XML做数据对接,用到了XSD文件来对XML进行校验。XSD就是一个规范,对应于这个规范还需要有java代码来对XML处理。可以用sun.tools.internal.xjc.Driver这个类来生成java代码。可以用批处理文件来实现。但是用jdk1.6.0_04会报错,然后换了个版本的jdk就可以了。至今也不知道为什么。(两者的sun.tools.internal.xjc下面都有Drever这个类,有可能是classpath环境变量没有配置好的缘故)

报错信息
D:\implement>java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0_04\l
ib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  basics.xsd
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/xml/internal/
bind/api/ErrorListener
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

D:\implement>pause
请按任意键继续. . .

批处理文件:

java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  basics.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  appraise.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  confirm.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  delay.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  delivery.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  deliveryRep.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  notice.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  reply.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  report.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  review.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  delay.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  handle.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  leader.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  visitor.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  notice.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  file.xsd
java -Dfile.encoding=UTF-8 -cp "D:\Program Files\Java\jdk1.6.0\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.ces.entity  queryStatus.xsd

时间: 2024-11-06 20:09:51

XML校验之sun.tools.internal.xjc.Driver的相关文章

webservice请求数据时类com/sun/tools/internal/xjc/api/XJC找不到的原因探究

一.缘由 最近做的一个项目中,有需要请求webservice数据的地方, JaxWsDynamicClientFactory dcf = null;                     dcf = JaxWsDynamicClientFactory.newInstance();   Client client = dcf.createClient("地址"); 然后client再调用invoke方法,起初在eclipse中测试的时候,没有出现任何问题,但是将包部署到服务器的时候,出

Missing artifact com.sun:tools:jar:1.5.0解决的方法

前一阵子下了最新的JavaEE版本号的eclipse,导入mavenproject之后,pom文件一直报Missing artifact com.sun:tools:jar:1.5.0.非常纳闷,tools.jar是jdk自带的jar包.查了一下pom依赖图,原来是struts-core依赖了这个jar包. 试了网上的各种方法,仅仅有把jdk的tools.jar拷贝到本地仓库,报错才消失. 详细解决的方法例如以下: 把D:\Program Files (x86)\Java\jdk1.6.0_10

Missing artifact com.sun:tools:jar:1.5.0解决办法

前一阵子下了最新的JavaEE版本的eclipse,导入maven工程之后,pom文件一直报Missing artifact com.sun:tools:jar:1.5.0.很纳闷,tools.jar是jdk自带的jar包.查了一下pom依赖图,原来是struts-core依赖了这个jar包. 试了网上的各种方法,只有把jdk的tools.jar复制到本地仓库,报错才消失. 具体解决办法如下: 把D:\Program Files (x86)\Java\jdk1.6.0_10\lib\tools.

pom文件miss artifact com.sun:tools:jar:1.5.0:system问题

问题现象: 导入新的maven项目时,有时候pom.xml文件会提示一个错误信息:Missing artifact com.sun:tools:jar:1.5.0:system 问题原因: maven是需要使用Jdk中的tools工具,而eclipse使用的是jre的运行环境,导致maven无法找到Jdk工具包tools.jar 解决方法: 1>将eclipse修改为jdk目录中的javaw作为启动环境.步骤可以参看另一篇博客: 2>在pom.xml中添加java.home属性节点,以及com

开发常见错误之 :Missing artifact com.sun:tools:jar 1.7.0

Missing artifact com.sun:tools:jar 1.7.0 解决办法一: 手动配置pom.xml,添加一个dependency如下: <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <scope>system</scope> <systemPath>${JAVA_HOME}/../lib/tool

【转自】Missing artifact com.sun:tools:jar 1.5.0 终极解决方法

在使用m2eclipse插件时,在pom.xml中添加struts2-core.jar包后,需要依赖java运行时的tools.jar进行依赖.但是,此时eclipse无法读取tools包,出现如下错误: Missing artifact com.sun:tools:jar 1.5.0 解决办法一: 手动配置pom.xml,添加一个dependency如下: <dependency><groupId>com.sun</groupId><artifactId>

Missing artifact com.sun:tools:jar 1.5.0 终极解决方法

在使用m2eclipse插件时,在pom.xml中添加struts2-core.jar包后,需要依赖java运行时的tools.jar进行依赖.但是,此时eclipse无法读取tools包,出现如下错误: Missing artifact com.sun:tools:jar 1.5.0 解决办法一: 手动配置pom.xml,添加一个dependency如下: <dependency><groupId>com.sun</groupId><artifactId>

javac找不到或无法加载主类 com.sun.tools.javac.Main,

javac找不到或无法加载主类 com.sun.tools.javac.Main ecplise在配置jdk时,1(要选择jdk的那层目录D:\JDK\jdk_64\jdk,不要选择jre的那层),2(这个错误有有可能是环境变量的问题,还有可能是你的工程中确实没有tools这个包)我原因就是工程没有这个包,因为这个包是jdk自带的包,所以我就认为这个包不需要手动添加.最后测试,这个包是要手动添加到工程中的. 去掉不用的工作空间 1.去掉不用的工作空间Eclipse中,有些workspace不再使

Android - 抑制lint的Android XML的警告:tools:ignore

抑制lint的Android XML的警告:tools:ignore 本文地址:http://blog.csdn.net/caroline_wendy Android的XML经常会出现警告,对于一个良好的程序,应该认真对待所有的警告. 除非我们可以确认警告,才可以排除. 显示所有警告的方法:Analyze -> Inspect Code; 就可以检查出所有的警告: 抑制警告使用: tools:ignore. // 忽略全部 xmlns:tools="http://schemas.andro