netbeans里的javafx工程如何打包成一个jar

由于官方有案例,所以很多网上的文章都说了怎么把netbeans的输出打包成一个jar, 有些叫fat-jar。

主要的用法就是修改 build.xml

但是也有以讹传讹的。首先是manifest.mf,如果是netbeans自建的工程,里面只有两行:

Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

很多人提到要在这里设置main-class的值,实际上是不需要的(自建的工程)。


第二,关于打包:官方提到了修改build.xml,在</project>之前增加内容:


蓝色的内容是需要根据自己的情况修改的。

   <target name="package-for-store" depends="jar">

        <property name="store.jar.name" value="LmCreater"/>
        <property name="store.dir" value="store"/>
        <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
        <property name="binWork.dir" value="binWork"></property>
        <property name="batfile" value="lmCreater.bat"></property>
        <property name="store.binWork" value="${store.dir}/binWork"></property>
        <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
        <delete dir="${store.dir}"/>
        <mkdir dir="${store.dir}"/>
        <delete dir="${store.binWork}"/>
        <mkdir dir="${store.binWork}"/>
        <copydir dest="${store.binWork}" src="${binWork.dir}"/>
        <copy file="${batfile}" todir="${store.dir}" />

    
        <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">      
            <zipgroupfileset dir="dist" includes="*.jar"/>
            <zipgroupfileset dir="dist/lib" includes="*.jar"/>
            <manifest>
                <attribute name="Main-Class" value="${javafx.main.class}"/>
            </manifest>
        </jar>
        <zip destfile="${store.jar}">
            <zipfileset src="${store.dir}/temp_final.jar"
                    excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
        </zip>
        <delete file="${store.dir}/temp_final.jar"/>
    </target>

关键是那个红色的部分 ,Main-Class的值,官方的文档,以及网上一大抄的文档写的是 ${main.class},如果是javafx的工程,这里是不同的,要用 javafx.main.class。  这是关键。


后面就简单了,在build.xml上右键,找到package-for-store,即可生成store目录下的单文件jar以及自己需要使用的其他文件。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 14.2-b01 (Sun Microsystems Inc.) Main-Class: org.jdesktop.swingx.painter.demo.PainterDemoSet X-COMMENT: Main-Class will be added automatically by build Name: org/jdesktop/swingx/JXCollapsiblePane.class Java-Bean: True Name: org/jdesktop/swingx/JXDatePicker.class Java-Bean: True Name: org/jdesktop/swingx/JXDialog.class Java-Bean: False Name: org/jdesktop/swingx/JXEditorPane.class Java-Bean: True Name: org/jdesktop/swingx/JXFindBar.class Java-Bean: True Name: org/jdesktop/swingx/JXFindPanel.class Java-Bean: True Name: org/jdesktop/swingx/JXFrame.class Java-Bean: True Name: org/jdesktop/swingx/JXGlassBox.class Java-Bean: True Name: org/jdesktop/swingx/JXGradientChooser.class Java-Bean: True Name: org/jdesktop/swingx/JXGraph.class Java-Bean: True Name: org/jdesktop/swingx/JXHeader.class Java-Bean: True Name: org/jdesktop/swingx/JXHyperlink.class Java-Bean: True Name: org/jdesktop/swingx/JXImagePanel.class Java-Bean: True Name: org/jdesktop/swingx/JXList.class Java-Bean: True Name: org/jdesktop/swingx/JXLoginDialog.class Java-Bean: True Name: org/jdesktop/swingx/JXLoginPane.class Java-Bean: True Name: org/jdesktop/swingx/JXMonthView.class Java-Bean: True Name: org/jdesktop/swingx/JXMultiSplitPane.class Java-Bean: True Name: org/jdesktop/swingx/JXMultiThumbSlider.class Java-Bean: True Name: org/jdesktop/swingx/JXPanel.class Java-Bean: True Name: org/jdesktop/swingx/JXRadioGroup.class Java-Bean: True Name: org/jdesktop/swingx/JXRootPane.class Java-Bean: True Name: org/jdesktop/swingx/JXSearchPanel.class Java-Bean: True Name: org/jdesktop/swingx/JXStatusBar.class Java-Bean: True Name: org/jdesktop/swingx/JXTable.class Java-Bean: True Name: org/jdesktop/swingx/JXTaskPane.class Java-Bean: True Name: org/jdesktop/swingx/JXTaskPaneContainer.class Java-Bean: True Name: org/jdesktop/swingx/JXTipOfTheDay.class Java-Bean: True Name: org/jdesktop/swingx/JXTitledPanel.class Java-Bean: True Name: org/jdesktop/swingx/JXTitledSeparator.class Java-Bean: True Name: org/jdesktop/swingx/JXTree.class Java-Bean: True Name: org/jdesktop/swingx/JXBusyLabel.class Java-Bean: True Name: org/jdesktop/swingx/JXLabel.class Java-Bean: True Name: org/jdesktop/swingx/JXTreeTable.class Java-Bean: True Name: org/jdesktop/swingx/auth/DefaultUserNameStore.class Java-Bean: True Name: org/jdesktop/swingx/auth/JAASLoginService.class Java-Bean: True Name: org/jdesktop/swingx/auth/JDBCLoginService.class Java-Bean: True Name: org/jdesktop/swingx/border/DropShadowBorder.class Java-Bean: True Name: org/jdesktop/swingx/border/MatteBorderExt.class Java-Bean: False Name: org/jdesktop/swingx/painter/AlphaPainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/CheckerboardPainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/CompoundPainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/GlossPainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/ImagePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/MattePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/PinstripePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/RectanglePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/ShapePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/TextPainter.class Java-Bean: True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值