2012-10-17 85 views
0

我在eclipse work_space中有2個項目。 項目A:Apache Tomcat的來源通過一些編輯[並有一些依賴的罐子]。項目B:一個小項目調用一個方法[項目A方法的一種方法]。導出到jar後eclipse項目不起作用

因此,當我在項目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

是的,這種問題很快就會發生,因爲eclipse不能查找java文件,而是搜索類文件。我認爲,如果將完整的項目A轉換爲A.jar並將其添加到項目B的構建路徑,它將起作用。 –

+0

Thx我這樣做但是沒有工作。同樣的例外。 – Mirzaei

+0

您是否已將完整的項目轉換爲罐子?你是怎麼做到的 ?你爲此使用了哪個工具? –

回答

0

瀏覽Apache Tomcat的代碼,我找不到找到org.apache.tools.ant.util.FileUtils。由於從eclipse運行,這可能意味着Project A在構建路徑中有一些jar文件。找到它,放入項目B的構建路徑,事情應該工作。

+0

是的,它是項目A的依賴jar [ant jar]之一。那麼ant jar不會把它的jar文件?我打開創建的A.jar並打開.classpath。看到這行:** ** 和A.jar包含libs/ant-1.8.1.jar文件!!! – Mirzaei

+0

是的,它工作。非常感謝。但是我不能使用A.jar而不添加依賴的jar文件? – Mirzaei

+0

你必須添加所有的依賴關係。也許有一種方法可以導出項目和所有依賴項,但我不知道它。 – vainolo

0

Eclipse有fatjar命名插件。安裝完這個jar到eclipse插件(複製過去的jar文件到eclipse的插件目錄)導出菜單選擇jar fat。通過這種方式導出的罐子尺寸很大但是獨立的

謝謝。