我是一名 .NET 开发人员,但对于我当前的项目,我需要使用 Java 项目 Google Caja。哦哦!
我在我的 Windows 机器上遵循了http://code.google.com/p/google-caja/wiki/RunningCaja上的指南,但无法让程序运行。他们建议的命令行不起作用,所以我进入 ant-jars 目录并尝试运行 plugin.jar:
D:\java\caja\svn-changes\pristine\ant-jars>java -cp . -jar pluginc.jar -i test.htm
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
at com.google.caja.plugin.PluginCompilerMain.<init>(PluginCompilerMain.java:78)
at com.google.caja.plugin.PluginCompilerMain.main(PluginCompilerMain.java:368)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more
那是怎么回事?
我也试过 file:///d:/java/caja/svn-changes/pristine/ant-jars/test.htm 而不是 test.htm。查看源代码,文件参数似乎是一个 Uri ...
我也尝试过在 pluginc 上运行 IKVM,然后不用担心 java,但这也出现了 ClassDefNotFoundException ......
谢谢!
编辑:感谢大家到目前为止的帮助:) 仍然卡住了。请和我一起坚持,这可能是 .net 开发人员转向漂亮的 OSS 技术的开始!
d:\java\caja\svn-changes\pristine\ant-jars>java -cp .\*.* com.google.caja.plugin.PluginCompilerMain
=> NoClassDefFoundError: /\commons-cli/jar
D:\java\caja\svn-changes\pristine\ant-jars>java -cp .\*.*;..\third_party\java\jakarta_commons\*.* com.google.caja.plugin.PluginCompilerMain
=> Could not find the main class: com.google.caja.plugin.PluginCompilerMain
鉴于 build.xml 文件中的代码,有什么方法可以让它运行吗?