2014-07-24 1 views
0

내 프로그램에서 일부 외부 jar 파일을 사용하고 있습니다. 이 항아리 중 하나가 저에게 만들어졌습니다. 내가이 jar 파일을 이클립스 프로젝트에서 사용할 때 잘 동작한다. 하지만 개미를 사용하여 동일한 작업을 수행하려고 할 때 NoClassDefFoundError가 표시됩니다. 내 jar 파일 안에 클래스를 가져올 수 없습니다.개미를 실행할 때 java.lang.NoClassDefFoundError

내 주요 방법은 다음과 같이이다 : 내 개미를 실행하고있을 때, 나는 다음과 같은 오류를 받고 있어요 지금

<project basedir="." default="run" name="project"> 
    <property name="src" location="src" /> 
    <property name="libs" location="lib" /> 
    <path id="class.path"> 
     <pathelement location="${libs}/ExtJarOne.jar" /> 
     <pathelement location="${libs}/ExtJarTwo.jar" /> 
     <pathelement location="${libs}/ExtJarThree.jar" /> 
     <pathelement location="bin" /> 
    </path> 

<target name="compile"> 
    <javac classpathref="class.path" srcdir="${src}" destdir="./bin"/> 
    </target> 

    <target name="jar" depends="compile"> 
     <mkdir dir="jar"/> 
    <jar destfile="./jar/Class.jar" basedir="./bin"> 
     <manifest> 
      <attribute name="Main-Class" value="pckg.main.Main"/> 
    </manifest> 
     </jar> 
    </target> 

    <target name="run" depends="jar"> 
     <java jar="./jar/Class.jar" fork="true"/> 
    </target> 

</project> 

: 같은

import pckg.harness.SomeClass; 

public class Main { 
    public static void main(String[] args) 
{ 
     SomeClass someClass=new SomeClass(); 
     someClass.runSomeMethod(); 
    } 
} 

내 build.xml 파일이

run: 
    [java] Exception in thread "main" java.lang.NoClassDefFoundError: pckg/harn 
ess/SomeClass 
    [java]  at pckg.main.Main.main(Unknown Source) 
    [java] Caused by: java.lang.ClassNotFoundException: pckg.harness.SomeClass 
    [java]  at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    [java]  at java.security.AccessController.doPrivileged(Native Method) 
    [java]  at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    [java]  at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    [java]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 

    [java]  at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    [java]  ... 1 more 
    [java] Java Result: 1 
+0

가능한 복제본 [Ant로 컴파일 된 파일에서 주 클래스를 찾을 수 없음] (http://stackoverflow.com/questions/3143567/cannot-find-main-class-in-file-compiled-with-ant) . jar을 실행 파일로 실행하는 경우 클래스 경로를 매니페스트에 포함시켜야합니다. –

답변

1

SomeClass는 Class.jar에 포함되어 있지 않으므로 자바 대상에 classpath를 정의해야합니다.

<java jar="./jar/Class.jar" classpath="class.path" fork="true"/> 
관련 문제