我正在尝试从w3实现css-validator,并且每次尝试都失败,引发错误消息。
以下是我遇到的错误:
"Directory Redacted"\framework-web>java -jar "Directory Redacted"\Downloads\
css-validator.jar http://www.w3.org
Exception in thread "main" java.lang.NoClassDefFoundError: org/w3c/tools/resourc
es/ProtocolException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
at java.lang.Class.getMethod0(Class.java:2774)
at java.lang.Class.getMethod(Class.java:1663)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.w3c.tools.resources.ProtocolExc
eption
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more
此错误消息到底指示了什么以及如何解决?
答案 0 :(得分:3)
应用程序似乎正在使用“ProtocolException”类:
http://jigsaw.w3.org/Doc/Programmer/api/org/w3c/tools/resources/ProtocolException.html
你的类路径中可能缺少它。我会看看你是否可以在你的ant类路径中添加包含 jar 。
另外,如果你看看思南的答案: How can I validate CSS on internal web pages?
是否有应用程序附带的ant构建文件?如果是这样,可能就像在build.xml上运行ant来获取依赖项一样简单,然后通过命令行运行java -jar。
答案 1 :(得分:2)
好的,事实证明我错过了8个必备的.jar文件。我将它们放在与css-validator.jar相同的文件夹中名为lib的文件夹中,之后它完美地运行。文件是:
比我想象的要少得多。 css-validator.jar的文档没有完整的列表,不得不在互联网上跳舞甚至重命名一些jar文件以使其工作(删除其中一些的版本号。)如果有人想使用css-validator .jar,你需要这些文件
答案 2 :(得分:2)
当cluemein包含实际文件名但没有原始版本以及哪些版本被重命名时,我感激不尽,我仍然无法运行css-validator。所以我从http://dev.w3.org/cvsweb/2002/css-validator/build.xml?rev=1.24;content-type=text%2Fplain下载了最新的css-validator.jar和最新的build.xml文件。
我将build.xml文件和jar放在目录中并运行
ant prepare
Ant为我下载了预期的jar版本,并将它们重命名为lib文件。然后我跑了
java -jar css-validator.jar http://awesomesite.com
它运作良好。