0

Eclipse work_space に 2 つのプロジェクトがあります。プロジェクト A: 少し編集した Apache Tomcat のソース [および依存する jar がいくつかあります]。プロジェクト B: 1 つのメソッドを呼び出す小さなプロジェクト [プロジェクト A のメソッドの 1 つのメソッド]。

したがって、プロジェクト B (BuildPAth のプロジェクトに追加) でプロジェクト A を使用するか、プロジェクト 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"}); 
  }
}
4

2 に答える 2

0

Eclipse には plugin という名前のfatjarあります。この jar を eclipse プラグインにインストールした後 (過去の jar ファイルを eclipse のプラグイン ディレクトリにコピー)、 [エクスポート] メニューで jar fat を選択します。このように、エクスポートされたjarのサイズは大きいですが、スタンドアロンです。

ありがとうございました。

于 2012-10-27T14:05:01.183 に答える
0

Apache Tomcatのコードを参照すると、 find が見つかりませんでしたorg.apache.tools.ant.util.FileUtils。Eclipse からの実行は機能するため、これはおそらく、プロジェクト Aのビルド パスに、このファイルを含む jar があることを意味します。それを見つけて、プロジェクト Bのビルド パスに入れると、うまくいくはずです。

于 2012-10-17T09:00:10.623 に答える