导出到jar后的eclipse项目不起作用

时间:2012-10-17 08:17:10

标签: java eclipse tomcat noclassdeffounderror

我的eclipse work_space中有2个项目。 项目A:通过一点编辑[并且有一些依赖的jar]的Apache Tomcat的源代码。 项目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

问题在哪里?

修改

Maintst.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"}); 
  }
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

Eclipse有 fatjar 名为插件。将此jar安装到eclipse插件后(将jar文件复制到eclipse的插件目录)在导出菜单中选择jar fat。这样导出的jar的大小很大但独立

谢谢。