Я пытаюсь создать кросс-платформу .jar программы, которая использует SWT для своего графического интерфейса. Я наткнулся на этот и этот, и попытался использовать его в своих собственных программа. Я не очень разбираюсь в сценариях ant, и эта программа имеет много других .jars в пути сборки, поэтому я использовал eclipse для создания ant build script, который я модифицировал, чтобы включить задачу swtjar. Однако, когда script запускается и переходит к задаче swtjar, он терпит неудачу и говорит, что The archive swtjar.jar doesn't exist
. Я также попытался сделать законный файл сборки ранее, а также получил эту ошибку. Есть что-то, что мне не хватает? Я включил swtjar.jar в путь сборки и taskdef в верхней части script.
Здесь script:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project kEllyIRClient">
<!--this file was created by Eclipse Runnable JAR Export Wizard-->
<!--ANT 1.7 is required-->
<taskdef name="swtjar" classname="org.swtjar.ant.SWTJarTask"
classpath="./libs/swtjar.jar"/>
<target name="create_run_jar">
<!--make the release directory if it doesn't exist-->
<mkdir dir="./release/"/>
<!--Create a temporary jar file with all the dependencies (i.e. the libs folder)-->
<jar jarfile="./release/externalLibsTemp.jar">
<zipgroupfileset dir="./libs/">
<exclude name="swt/*swt*.jar"/>
<exclude name="swtjar.jar"/>
<include name="**/*.jar"/>
</zipgroupfileset>
</jar>
<!--package with swt-->
<swtjar jarfile="./release/KEllyIRC.jar" targetmainclass="shared.Initializer" swtversion="3.7.1">
<fileset dir="./bin"/>
<!--Add the dependencies jar to the jar, but exclude the meta-inf/manifest stuff
cause that screws stuff up.-->
<zipfileset excludes="META-INF/*.SF" src="./release/externalLibsTemp.jar" />
<fileset dir="./libs/swt/" includes="swt-win32-3.7.1.jar"/>
</swtjar>
<!--Delete temporary file-->
<delete file="./release/externalLibsTemp.jar"/>
</target>
И это ошибка:
D:\My Dropbox\Java\kEllyIRClient\swtjar-buildV2.xml:24: The archive swtjar.jar doesn't exist