我正在研究一個grails項目,並且已經將一個.jar文件放在項目的lib目錄中。ClassNotFoundException對於一個類但不是來自同一個包的另一個類?
我在我使用的grails項目中的一個java文件中一直收到ClassNotFoundException的運行時異常。
我定義爲這樣的方法:
void printValues(org.docx4j.wml.ParaRPr rpr){
}
,我有那看起來像
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import org.docx4j.wml.Body;
import org.docx4j.wml.Style;
這就是拋出異常的進口部分。
但是,如果我改變我的方法是像
void printValues(org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart rpr){
}
我沒有得到任何運行時異常。
這裏可能會發生什麼?我已經驗證了docx4j.jar文件包含ParaRPr,並且它有。我已經證實,這些課程是公開的,而且是。另外,我嘗試了org.docx4j.wml目錄中的不同類,有些給我例外,有些不給予。這怎麼可能?
以下是完整的堆棧跟蹤:
2010-09-15 12:37:00,198 [http-8080-1] ERROR errors.GrailsExceptionResolver - org.docx4j.wml.ParaRPr
java.lang.ClassNotFoundException: org.docx4j.wml.ParaRPr
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
at java.security.AccessController.doPrivileged(Native Method)
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
at javatest.ResumeController$_closure4.doCall(ResumeController.groovy:47)
at javatest.ResumeController$_closure4.doCall(ResumeController.groovy)
at java.lang.Thread.run(Thread.java:619)
[groovyc] Compiling 1 source file to C:\dev\JavaTest\target\classes
這裏是罐子-tf對jar文件的輸出 - 顯示在那裏ParaRPr類
$ jar -tf docx4j-nightly-20100914.jar | grep Para
org/docx4j/dml/CTTextParagraph.class
org/docx4j/dml/CTTextParagraphProperties.class
org/docx4j/dml/diagram/CTParameter.class
org/docx4j/dml/diagram/STParameterId.class
org/docx4j/math/CTOMathPara.class
org/docx4j/math/CTOMathParaPr.class
org/docx4j/model/properties/paragraph/AbstractParagraphProperty.class
org/docx4j/wml/CTParaRPrOriginal.class
org/docx4j/wml/ParaRPr.class
org/docx4j/wml/ParaRPrChange.class
org/pptx4j/pml/CTTLBuildParagraph.class
org/pptx4j/pml/CTTLTimeNodeParallel.class
org/pptx4j/pml/STTLParaBuildType.class
org/xlsx4j/sml/CTParameter.class
org/xlsx4j/sml/CTParameters.class
org/xlsx4j/sml/STParameterType.class
請張貼的jar **完整的**堆棧跟蹤。特別是*根本原因*部分是最重要的。 – BalusC 2010-09-15 17:08:15
Full Stacktrace posted :) – Derek 2010-09-15 17:13:12