我的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"});
}
}
答案 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的大小很大但独立。
谢谢。