자바 컴파일 중 package does not exist 에러. 해결했더니 java 실행시 에러...
글쓴이: 세벌 / 작성시간: 일, 2010/05/30 - 5:27오후
http://xmlgraphics.apache.org/fop/0.95/embedding.html#ExampleFO2PDF 보면서
ExampleFO2PDF.java 컴파일 해 보려고
javac ExampleFO2PDF.java
했더니 아래와 같은 에러가 나네요.
c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:39: package org.apache.fop.apps does not exist import org.apache.fop.apps.FOUserAgent; ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:40: package org.apache.fop.apps does not exist import org.apache.fop.apps.Fop; ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:41: package org.apache.fop.apps does not exist import org.apache.fop.apps.FOPException; ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:42: package org.apache.fop.apps does not exist import org.apache.fop.apps.FopFactory; ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:43: package org.apache.fop.apps does not exist import org.apache.fop.apps.FormattingResults; ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:44: package org.apache.fop.apps does not exist import org.apache.fop.apps.MimeConstants; ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:45: package org.apache.fop.apps does not exist import org.apache.fop.apps.PageSequenceResults; ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:53: cannot find symbol symbol : class FopFactory location: class embedding.ExampleFO2PDF private FopFactory fopFactory = FopFactory.newInstance(); ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:62: cannot find symbol symbol : class FOPException location: class embedding.ExampleFO2PDF public void convertFO2PDF(File fo, File pdf) throws IOException, FOPException { ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:53: cannot find symbol symbol : variable FopFactory location: class embedding.ExampleFO2PDF private FopFactory fopFactory = FopFactory.newInstance(); ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:67: cannot find symbol symbol : class FOUserAgent location: class embedding.ExampleFO2PDF FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:76: cannot find symbol symbol : class Fop location: class embedding.ExampleFO2PDF Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out); ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:76: cannot find symbol symbol : variable MimeConstants location: class embedding.ExampleFO2PDF Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out); ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:92: cannot find symbol symbol : class FormattingResults location: class embedding.ExampleFO2PDF FormattingResults foResults = fop.getResults(); ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:95: cannot find symbol symbol : class PageSequenceResults location: class embedding.ExampleFO2PDF PageSequenceResults pageSequenceResults = (PageSequenceResults)it.next(); ^ c:\fop\fop-0.95\examples\embedding\java\embedding\ExampleFO2PDF.java:95: cannot find symbol symbol : class PageSequenceResults location: class embedding.ExampleFO2PDF PageSequenceResults pageSequenceResults = (PageSequenceResults)it.next(); ^ 16 errors
Forums:
http://xmlgraphics.apache.org
http://xmlgraphics.apache.org/fop/download.html
에서 파일을 다운 받으신 다음에 압축을 풀어서 jar 파일들을 찾으세요.
그리고 그 jar 파일들을 클래스패스로 주면 됩니다.
예를 들어 abc.jar 와 def.jar 가 있다면
javac -cp abc.jar:def.jar ExampleFO2PDF.java
와 같이 컴파일하면 됩니다.
(혹시 윈도에서 컴파일하신다면 : 를 ; 로 바꾸세요.)
javac 성공 이번엔 java 에러
-cp fop.jar 붙여서
했더니 에러메시지 안 나타나고
c:\fop\fop-0.95\examples\embedding\java\embedding ExamplesFO2PDF.class
만들어 졌습니다. 그런데...
했더니 아래의 에러가 나네요.
http://sebul.sarang.net/
세벌 https://sebuls.blogspot.kr/
java 에도 javac 와
java 에도 javac 와 똑같이 클래스패스 옵션을 주어야 합니다.
자바는 항상 동적 라이브러리를 사용하기 때문에 컴파일 타임 의존성과 런타임 의존성이 거의 같습니다.
ant
java -cp 붙여도 같은 에러 나네요. examples\embedding\README 보니까
이런 말이 있네요. 일단 ant 설치해서 다시 해봐야겠네요.
http://sebul.sarang.net/
세벌 https://sebuls.blogspot.kr/
ant 와는 관계
ant 와는 관계 없습니다. ant 는 build tool 일 뿐입니다.
java -cp build\fop.jar;examples\embedding\java ExamplesFO2PDF
로 해보세요.
-----------------------** 추가 **
아래에 dormael 님 말씀을 보고 소스 코드를 확인해보니 패키지가 embedding 이네요.
그리고 에러 메시지의 패스를 보고 추측컨데
java -cp build\fop.jar;examples\embedding\java embedding.ExamplesFO2PDF
로 실행하셔야 할 것 같습니다.
실행하실때 패키지를
실행하실때 패키지를 다 지정하셔야 하지 않을까요?
소스 루트가 어디인지는 정확히 모르지만 아마도
embeding.ExampleFO2PDF 아니면 examples.embedding.java.embeding.ExampleFO2PDF
가 아닐까 싶습니다.
물론 클래스패스도 지정해 주셔야 하구요.
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
http://ant.apache.org/manual/
http://ant.apache.org/manual/install.html 참고하여 ant 설치하고 환경변수 설정하고
examples\embedding\README 참고해서
examples\embedding 디렉토리에서
위의 분 말씀대로 한 건 아니지만, 어쨌든 위의 분 도움말 고맙습니다.
http://sebul.sarang.net/
세벌 https://sebuls.blogspot.kr/
댓글 달기