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

Java 导出到jar后的eclipse项目不起作用,java,eclipse,tomcat,noclassdeffounderror,Java,Eclipse,Tomcat,Noclassdeffounderror,我的eclipse工作空间中有两个项目。 项目A:ApacheTomcat的源代码,只需稍加编辑[并且有一些依赖的JAR]。 项目B:一个小项目调用一种方法[项目A方法中的一种方法] 所以,当我在项目中使用项目A时,我就添加了构建路径的项目,或者在项目A中测试这种方法。但是,当项目B使用导出的项目A的jar文件时,它并不会将项目A从项目B的构建路径中删除,并添加A的jar文件。 抛出的异常是: Exception in thread "main" java.lang.NoClassDefF

我的eclipse工作空间中有两个项目。 项目A:ApacheTomcat的源代码,只需稍加编辑[并且有一些依赖的JAR]。 项目B:一个小项目调用一种方法[项目A方法中的一种方法]

所以,当我在项目中使用项目A时,我就添加了构建路径的项目,或者在项目A中测试这种方法。但是,当项目B使用导出的项目A的jar文件时,它并不会将项目A从项目B的构建路径中删除,并添加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

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

Eclipse有一个命名插件。将此jar安装到eclipse插件后,在导出菜单中选择jar fat,将过去的jar文件复制到eclipse的插件目录。这样,导出的jar的大小很大,但是独立的


谢谢。

是的,这种问题很快就会发生,因为eclipse无法查找java文件,而不是搜索类文件。我想,如果你把完整的项目A转换成A.jar,并把它添加到项目B的构建路径中,它会工作的。同样的例外。你把整个项目转换成jar了吗?你是怎么做到的?我右键点击项目A->export->jar->这个选项:tik 1th,3,4,5,6,7复选框->下一步1,2,4复选框->finish。你需要在项目B文件夹中创建一个名为lib的文件夹,然后在构建路径中添加一个.jar。这样看起来事情会组织得很好。是的,它是项目A的依赖jar[antjar]之一。所以ant jar不把它放在一个jar文件中?我创建了一个.jar和一个open.classpath。请看这一行:和A.jar包含libs/ant-1.8.1.jar文件!!!是的,它能工作。非常感谢你,穆奇。但是我不能在不添加依赖jar的情况下使用.jar?您必须添加所有依赖项。也许eclipse有办法导出项目和所有依赖项,但我不知道。这是否重要。但我很少单独使用导出的jar。是的,谢谢。这有助于解决我的问题,但不能完全解决。我可以在项目B中单独使用A.jar而不向类路径添加ant-1.8.1.jarA的依赖jar文件吗?
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"}); 
  }
}