2016-06-11 2 views
1

itext 7 코드의 첫 번째 예제를 실행하면 4 단계에서 NoClassDefFoundError가 발생합니다. 누구로부터 오류가 발생했는지 가리킬 수 있다면 도움이 될 것입니다.iText 7 HelloCloseDefFoundError 예제 Hello world 예제가 실패합니다.

import com.itextpdf.kernel.pdf.PdfWriter 
import com.itextpdf.kernel.pdf.PdfDocument 
import com.itextpdf.layout.Document 
import com.itextpdf.layout.element.Paragraph 

//step 1 - writer 
writer = new PdfWriter(new FileOutputStream(DEST)) 
//step 2 - PDF 
pdf = new PdfDocument(writer) 
//step 3 - document 
document = new Document(pdf) 
//step 4 - content 
document.add(new Paragraph ('Hello World!')) 

java.lang.NoClassDefFoundError: Could not initialize class com.itextpdf.io.font.FontProgramFactory 

코드은 (는) IO, 커널 약간 더 스파 스 과 레이아웃 항아리가로드되는 이유입니다 그루비에서 실행되고 생산하고 있습니다.

답변

2

iText 7을 설치하는 방법에 대한 비디오를 보셨습니까? 오류 메시지는 IO jar을 포함하지 않았 음을 알려줍니다. 내 가정은 CLASSPATH에 커널과 레이아웃 jar를 추가했지만 io jar를 추가하지 않았다는 것입니다.

가 점프 시작 자습서의 Before we start: installing iText 7 섹션에 문서화 된 종속의 일부입니다 :

<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>kernel</artifactId> 
    <version>7.0.0</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>io</artifactId> 
    <version>7.0.0</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>layout</artifactId> 
    <version>7.0.0</version> 
    <scope>compile</scope> 
</dependency> 

으로는 비디오 설명, 입출력 항아리 커널 항아리의 종속성입니다.

당신은 쓰기 :

IO, 커널 및 레이아웃 항아리가로드됩니다.

공유 한 오류 메시지는 IO 병이로드되지 않았 음을 알려줍니다. com.itextpdf.io.font.FontProgramFactory 클래스는이 jar에 저장됩니다.

+0

나는 가지고 있고, 그들은 ... –

+0

@johnrenfrew 그렇지 않으면 오류 메시지가 나에게 알려줍니다. 오류 메시지가 잘못되었거나 오류 메시지입니다. 개발자로서 나는 오류 메시지가 인간이 말하는 것보다 내게 무엇을 말하고 있는지 더 신뢰한다. 나는 심지어 내가 생각하는 것보다 더 많은 오류 메시지를 신뢰한다. –

+0

오류는 실제로 내 것이지만, 생각하지는 않습니다. 예를 들어 바닥에 놓친 SLF4J에 대한 의존성이 있습니다. IDE를 사용하면로드 된 것으로 추정됩니다. 우리는 그렇지 않습니다 ... 나는 그것이 포함되어 왜 오류가 사라지게하는지 확신 할 수 없다. .. –