私は自分のbuild.xmlを作成しました:
<target name="compile">
<mkdir dir="build"/>
<javac destdir="build">
<src path="src"/>
</javac>
</target>
<target name="build" depends="compile">
<mkdir dir="dist"/>
<jar destfile="dist/app.jar" basedir="build" />
</target>
<target name="run" depends="compile">
<Java classname="webserver.Loader" classpath="build" fork="true" />
</target>
それは素晴らしい働きをします。 ant runを呼び出すと、アプリケーションがコンパイルされて実行されますが、アプリケーションにはアイコン付きのパッケージがあり、「ビルド」フォルダーに移動されないため、アイコンが見つからないという例外でアプリケーションが終了します。自分で動かすとうまくいきます。
使ってみた
<copy todir="build/app/icons">
<fileset dir="src/app/icons"/>
</copy>
動作しますが、copyコマンドなしで実行したいと思います。 javacにパラメーターはありますか?または、他の何か?
答えてくれてありがとう。
申し訳ありませんが、Java以外のファイルを手動でコピーする必要があります。リソースは技術的には「ソース」ではありません。コマンドラインjavacは、ソースディレクトリから出力ディレクトリにリソースファイルをコピーしません。また、antのjavacタスクもコピーしません。
そのようなパラメーターはありません。あなたはあなたのディレクトリ間であらゆる種類のファイルをコピーすることができます:
<copy todir="build">
<fileset dir="src"
includes="**/*.xml,**/*.properties,**/*.txt,**/*.ico" />
</copy>
これを行うには、ファイルを手動でコピーする代わりに、fileset
タスクのjar
要素を使用します。例えば:
<jar destfile="dist/app.jar" basedir="build">
<fileset dir="src" includes="app/icons/**" />
</jar>
これにより、src/app/icons/
からapp/icons
.jarファイル内のパス。
いいえ、ありません。コピータスクは、リソースをビルドフォルダーにコピーする正しい方法です。