You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetBeans 8.0.2教程:如何创建包含所有依赖库与源代码的可执行JAR文件

如何在NetBeans的自定义打包JAR中包含源代码

当然可以实现把源代码包含进你的JAR文件里!你的package-for-store目标已经在合并主JAR和依赖库了,只需要添加几行配置就能把源码也加进去。

修改步骤:

NetBeans默认的源代码目录是src(如果你的项目结构不同,调整下面的路径即可),你只需要在<jar>任务中添加一个<fileset>来包含所有.java文件。

修改后的package-for-store目标:

<target name="package-for-store" depends="jar">
    <!-- Change the value of this property to be the name of your JAR, minus the .jar extension. It should not have spaces.
    <property name="store.jar.name" value="MyJarName"/> -->
    <property name="store.jar.name" value="SendMail"/>
    <!-- don't edit below this line -->
    <property name="store.dir" value="store"/>
    <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
    <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
    <delete dir="${store.dir}"/>
    <mkdir dir="${store.dir}"/>
    <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
        <zipgroupfileset dir="dist" includes="*.jar"/>
        <zipgroupfileset dir="dist/lib" includes="*.jar"/>
        <!-- 新增:包含项目源代码 -->
        <fileset dir="src" includes="**/*.java"/>
        <manifest>
            <attribute name="Main-Class" value="${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>

可选优化:

如果希望源代码在JAR里有独立的目录结构(比如都放在src子目录下,避免和class文件混在一起),可以给<fileset>加上prefix属性:

<fileset dir="src" includes="**/*.java" prefix="src"/>

验证:

执行修改后的package-for-store目标后,打开生成的JAR文件,你就能看到所有的.java源代码文件已经被包含进去了。

内容的提问来源于stack exchange,提问作者Jeniffer Lorena Guillen Castro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 06:48:45