私は単純なJavaプロジェクトを持っています。私はEclipse 4.2を使ってコードを書いています。また、アプリケーションのビルドと起動に ant を使用しています。私の起動の結果はファイルです。入力ファイルを読み取り、出力ファイルを生成します。
問題は次のとおりです。異なるエンコーディングで結果が得られます。Eclipse からアプリを起動すると、出力ファイルが 1 つのエンコーディングで取得されます。ant を使用して同じアプリを実行すると、結果出力ファイルが別のエンコーディングで取得されます。Eclipse と ant は同じ jdk を使用してアプリケーションをビルドおよび実行します...何が間違っていますか?
その問題は別のところにあると思います。私のbuild.xmlの一部を見てください:
<target name="compile" depends="init">
<javac destdir="${bin.dir}" classpathref="project.classpath"
source="1.7"
target="1.7"
debug="yes"
encoding="UTF-8"
srcdir="${src.dir}">
</javac>
<copy todir="${bin.dir}" >
<fileset dir="${src.dir}" excludes="**/*.java" />
</copy>
</target>
ご覧のとおり、エンコーディングが指定されています。ソースファイルは実際には UTF-8 です。
メインクラスを起動するコードは次のとおりです。
<target name="prepare_inserts" depends="dist" description="Run preparation of SQL INSERT statements.">
<java classname="${main.class}" fork="true">
<classpath>
<path refid="project.classpath" />
<pathelement location="${dist.dir}/xBankImportDWHTestData-${DSTAMP}.jar" />
</classpath>
</java>
</target>
このターゲットを実行すると、結果ファイルが間違ったエンコーディングで取得されます。このファイルを Eclipse から実行すると (Java ファイルを右クリック -> 次のように実行.. -> Java クラス)、すべて問題ありません。Eclipse プロジェクトのプロパティでエンコーディングを UTF-8 に設定しました...他に何を試すことができますか?