2013-06-09 3 views
0

Eclipse 프로젝트에서 Java 프로젝트 실행 파일을 만들려고합니다. 내가 사이트를 검색 한 후 나는 다음과 같은 개미의 build.xmlJava 프로젝트 빌드 항아리 및 depenedencies

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="GraphBuild" default="CreateJar"> 
    <target name="CreateJar" description="Create Jar file"> 
    <manifest file="MANIFEST.MF"> 
     <attribute name="Main-Class" value="GraphEditor" /> 
    </manifest> 
    <jar jarfile="GraphEditor.jar" basedir="." includes="*.class" 
      manifest="MANIFEST.MF" /> 
    </target> 
</project> 

을 컴파일 할 수 있었다, 그래서 나는 다음과 같은 명령

java -jar GraphEditor.jar 
를 사용하여 GraphEditor.jar을 실행하면 첫 번째 단계는 JAR 파일을 생성 할 것이라는 점을 이해

프로젝트에 참조 된 라이브러리가있어서 로더가 찾을 수 없기 때문에 java.lang.NoClassDefFoundError가 나타납니다. 행운과 함께 -cp 변수를 설정하려고했습니다.

감사합니다.

답변

0

종속 jar를 적절히 연결하고 class 파일의 디렉토리를 올바르게 가리켜 야합니다. 같은

뭔가 : 받는다는와

<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${class.dir}"> 
    <manifest> 
     <attribute name="Main-Class" value="${main-class}"/> 
     <attribute name="Class-Path" value="${lib.dir}/lib1.jar ${lib.dir}/lib2.jar"/> 
    </manifest> 
</jar> 
0

클래스 경로 변수를 종속 jar 파일과 함께 적절한 위치에 추가하고 시도 할 수 있습니까?

0

질문을 올바르게 읽은 경우 먼저 -cp 및 -jar를 사용할 수 없다고 말하고 싶습니다. JAR (ant @see http://www.tomred.net/tomred-java-jar-meta-inf-manifest.html)을 생성 할 때 classpath를 선언하면 MANIFEST에 포함되도록 -cp를 포함 할 필요가 없습니다.

classpath로 jar를 테스트하려면 다음과 같이 -jar를 -jar와 바꿔야합니다.

java -cp lib/;deps/;GraphEditor.jar org.package.to.RunClass 

간단히 -jar와 -cp는 배타적으로 배타적입니다. 노트: ";" 윈도우에서 분리 ":"리눅스에서

관련 문제