在我的 JavaFX-Project 中我导入了 .exe 文件: tool.exe
图片1
在 Ant 的帮助下,我收到了安装文件:
图片2
我安装了该应用程序。 我的目标是在安装文件夹中包含 tool.exe 文件:
图片3
你能帮我弄清楚我需要在Ant脚本中添加哪一行代码吗?
<target name="init-fx-tasks">
<path id="fxant">
<filelist>
<file name="${java.home}\..\lib\ant-javafx.jar" />
<file name="${java.home}\lib\jfxrt.jar" />
</filelist>
</path>
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml" uri="javafx:com.sun.javafx.tools.ant" classpathref="fxant" />
</target>
<target name="setup-staging-area">
<delete dir="externalLibs" />
<delete dir="project" />
<delete dir="projectRefs" />
<mkdir dir="externalLibs" />
<mkdir dir="project" />
<mkdir dir="projectRefs" />
<copy todir="project">
<fileset dir="C:\Users\name\workspace\project\Test">
<include name="src/**" />
</fileset>
</copy>
</target>
<target name='do-compile'>
<delete dir="build" />
<mkdir dir="build/src" />
<mkdir dir="build/libs" />
<mkdir dir="build/classes" />
<copy todir="build/libs">
<fileset dir="externalLibs">
</fileset>
</copy>
<copy todir="build/src">
<fileset dir="project/src">
<include name="**/*" />
</fileset>
</copy>
<javac includeantruntime="false" source="1.8" target="1.8" srcdir="build/src" destdir="build/classes" encoding="Cp1252">
<classpath>
<fileset dir="build/libs">
<include name="*" />
</fileset>
</classpath>
</javac>
<copy todir="build/classes">
<fileset dir="project/src">
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="do-deploy" depends="setup-staging-area, do-compile, init-fx-tasks">
<delete file="dist" />
<delete file="deploy" />
<mkdir dir="dist" />
<mkdir dir="dist/libs" />
<copy todir="dist/libs">
<fileset dir="externalLibs">
<include name="*" />
</fileset>
</copy>
<fx:resources id="appRes">
<fx:fileset dir="dist" includes="Test.jar" />
<fx:fileset dir="dist" includes="libs/*" />
<fx:fileset dir="build" includes="tools/*" />
</fx:resources>
<fx:application id="fxApplication" name="TEST" mainClass="application.Main" toolkit="fx" />
<mkdir dir="build/classes/META-INF" />
<fx:jar destfile="dist/Test.jar">
<fx:application refid="fxApplication" />
<fileset dir="build/classes">
</fileset>
<fx:resources refid="appRes" />
<manifest>
<attribute name="Implementation-Vendor" value="Software" />
<attribute name="Implementation-Title" value="TEST" />
<attribute name="Implementation-Version" value="1" />
<attribute name="JavaFX-Feature-Proxy" value="None" />
</manifest>
</fx:jar>
<mkdir dir="deploy" />
<fx:deploy embedJNLP="false" extension="false" includeDT="false" offlineAllowed="true" outdir="${basedir}/deploy" outfile="Test" nativeBundles="exe" updatemode="background">
<fx:platform basedir="${java.home}" />
<fx:info title="Test" vendor="Software" />
<fx:application refId="fxApplication" />
<fx:resources refid="appRes" />
</fx:deploy>
</target>
我尝试添加此行,但它无效。
<copy todir="project">
<fileset dir="C:\Users\name\workspace\project\Test">
<include name="src/**" />
<include name="tool.exe" />
</fileset>
</copy>
提前致谢
答案 0 :(得分:0)
我做到了!
也许它对其他人有用。
您需要在 dist 文件夹中创建资源文件夹。
<mkdir dir="dist" />
<mkdir dir="dist/libs" />
...
<mkdir dir="dist/resources" /> <---------- This line
...
自动复制此文件夹。
我将文件 tool.exe 复制到其中。
<copy todir="dist/resources">
<fileset dir="C:\Users\name\workspace\project\Test">
<include name="tool.exe" />
</fileset>
</copy>
并在 fx:resources 中声明。
<fx:resources id="appRes">
<fx:fileset dir="dist" includes="Test.jar" />
<fx:fileset dir="dist" includes="libs/*" />
...
<fx:fileset dir="dist" includes="resources/**" /> <---------- This line
...
</fx:resources>
非常感谢大家。