2010-11-30 4 views
0

메신저를 사용하여 단지 내에서 클래스를 실행하지만 난 예외 아래 gettign 해요 -이 경우 (는 jar 파일 내에서 특정 클래스를 호출하려고 개미

Buildfile: C:\Projects\GranHermano\build.xml 
SignJadFilesInDir: 
    [java] java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Cell 

내 jar 파일이 필요한 모든 단지를 포함 poi-3.6-20091214.jar) 예외가 발생하면 안됩니다.

<target name="SignJadFilesInDir" description="Signs all jad files in a dir" > 
<java classname="com.src.SignDeviceJadInDir"> 
    <classpath> 
     <pathelement location="BuildUtils.jar"/> 
     </classpath> 
    <arg line="${jadFileDir}"/> 
    <arg line="${devicesExcelDir}"/> 
    <arg line="${wtkDir}"/> 
    <arg line="${keyStoreDir}"/> 
    <arg line="${keyStoreId}"/> 
    <arg line="${keyStorePwd}"/> 
</java> 
</target> 

감사

난으로
+0

jar 파일에'poi -... j'를 가리키는'Class-Path : ... '와 함께'META-INF/MANIFEST.MF'가 들어 있다는 것을 의미합니까? 어쨌든 'pathelement'로 추가하십시오. – khachik

+0

아니요, 내 매니페스트 파일에 매니페스트 버전 만 포함되어 있습니다. 항아리 안에 poi 항아리가 들어있는 alib 폴더가 있습니다. –

답변

0

는 당신이 그것을 잘 POI의 클래스 (및 포이하지 항아리를 포함하기 위해 열린 항아리 BuildUtils.jar을 기쁘게 할 수 -

이 내가 클래스를 호출하고 어떻게 jar-in-a-jar에 대한 JRE 지원을 알지 못함)? BuildUtils.jarpoi-3.6-20091214.jar이 있고 클래스가 아닌 경우 예외는 매우 정상입니다.

+0

클래스에는 항아리가 포함되어 있지만 항아리는 포함되어 있지 않으므로 필요한 항아리가 아닌 클래스로 항아리를 생성해야합니까? –

+0

또는 BuidlUtils.jar을 클래스 경로 항목 목록으로 바꿀 수 있습니다. Fortunatly, ant에서 classpath 참조를 사용할 수 있습니다 (자세한 내용은 ant의 매뉴얼 http://ant.apache.org/manual/using.html#path) – Riduidel

+0

<파일 세트 DIR = "lib 디렉토리"> 는

관련 문제