2014-01-08 4 views
1

ANT를 사용하여 JavaFX 응용 프로그램의 모든 jar 파일에 모든 라이브러리를 묶으려고합니다. 나는 다음과 같은 것을 발견했다 Creating a bundle jar with ant하지만 작동시키지 못했습니다. 라이브러리 * .jar 파일을 추가하면 <fileset>을 추가하여 <fx:jar>으로 수행 할 수 있습니다javafx 응용 프로그램에 대한 번들 jar 만들기

<fileset dir="build" includes="libs/*.jar"></fileset> 

build 디렉토리에는 다음이 포함

build 
    |-- classes (compiled classes) 
    |-- libs (external libraries) 
    |-- src (sources) 

생성 된 항아리는 지금 모든 라이브러리와 libs 디렉토리가 포함되어 있습니다.

생성 된 jar 파일에 jar 파일 내부에있는 libs 디렉토리를 살펴보고 그 파일이 아닌 것을 어떻게 알 수 있습니까?

감사합니다.

+0

참조 : [A JAR 내의 JAR 포함 클래스 경로 (http://stackoverflow.com/questions/183292/classpath-including-jar-within-a-jar). – jewelsea

답변

3

jewesea!

JavaFX에서 작동하는 라이브러리를 만들 수 없습니다. 그러나 나는 이것을 찾았다 : https://community.oracle.com/message/10266894

그래서 <fx:jar> 이후 나는 모든 포장을 풀고 재 포장한다. 그리고 그것은 작동한다.

<target name="do-deploy-bundle" depends="init-properties, do-deploy-dist"> 
    <property name="tmp.file" value="temp_final.jar"/> 

    <delete file="${dist.dir}/${app.jar}" /> 
    <delete dir="${bundle-dist.dir}"/> 
    <mkdir dir="${bundle-dist.dir}"/> 

    <jar destfile="${bundle-dist.dir}/${tmp.file}" filesetmanifest="skip"> 
     <zipgroupfileset dir="${dist.dir}" includes="*.jar" /> 
     <zipgroupfileset dir="${dist.dir}/libs" includes="*.jar" /> 

     <manifest> 
      <attribute name="Implementation-Vendor" value="${app.vendor}"/> 
      <attribute name="Implementation-Title" value="${app.name}"/> 
      <attribute name="Implementation-Version" value="${app.version}"/> 
      <!--<attribute name="Main-Class" value="com.javafx.main.Main" />--> 
      <attribute name="Main-Class" value="com.poterion.texovac.application.Main" /> 
      <attribute name="JavaFX-Version" value="2.2" /> 
      <attribute name="JavaFX-Feature-Proxy" value="None"/> 
      <!--<attribute name="JavaFX-Application-Class" value="com.poterion.texovac.application.Main" />--> 
      <attribute name="Created-By" value="JavaFX Packager" /> 
     </manifest> 
    </jar> 

    <zip destfile="${dist.dir}/${app.jar}"> 
     <zipfileset src="${bundle-dist.dir}/${tmp.file}" excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA , META-INF/maven/**,META-INF/*.txt" /> 
    </zip> 

    <delete file="${bundle-dist.dir}/${tmp.file}" /> 
    <delete dir="${bundle-dist.dir}"/> 
</target> 
관련 문제