0

我的 Eclipse 工作空间中有 2 个项目。项目 A:Apache Tomcat 的源代码通过一点编辑[并有一些依赖的 jars]。项目B:一个小项目调用一种方法[项目A的方法的一种方法]。

因此,当我在项目 B 中使用项目 A(添加到 BuildPAth 的项目中)或在项目 A 中测试此方法时,该方法有效。但是当项目 B 使用导出的项目 A 的 jar 文件时不起作用(仅从项目 B 的 BuildPath 中删除项目 A 并添加 A 的 jar 文件)。抛出的异常是:

   Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/util/FileUtils
    at org.apache.jasper.JspC.resolveFile(JspC.java:1602)
    at org.apache.jasper.JspC.setOutputDir(JspC.java:863)
    at org.apache.jasper.JspC.setArgs(JspC.java:276)
    at org.apache.jasper.JspC.main(JspC.java:241)
    at jspCompiler.pars(jspCompiler.java:65)
    at jspCompiler.main(jspCompiler.java:100)
    at maintst.main(maintst.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.util.FileUtils
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 7 more

问题出在哪里?

编辑

维护.java

import jspParser.jspCompiler;
public class maintst { 
  public static void main(String[] args) throws Exception { 
    jspCompiler cmp=new jspCompiler();
    cmp.main(new String[]{"F:\\arshad droos\\Thesis\\secureBranch\\personalblog\\build","F:\\arshad droos\\Thesis\\secureBranch"}); 
  }
}
4

2 回答 2

0

浏览Apache Tomcat的代码我找不到 find org.apache.tools.ant.util.FileUtils。由于从 Eclipse 运行,这可能意味着项目 A在包含此文件的构建路径中有一些 jar。找到它,放入项目 B的构建路径中,事情应该可以工作了。

于 2012-10-17T09:00:10.623 回答
0

Eclipse 有一个名为plugin的fatjar。将此jar安装到eclipse插件后(将过去的jar文件复制到eclipse的插件目录)在Export菜单中选择jar fat。这样导出的 jar 的大小很大但是Standalone

谢谢你。

于 2012-10-27T14:05:01.183 回答