我有一个简单的 Java 项目。我确实使用 Eclipse 4.2 编写代码。我也使用 ant 来构建和启动我的应用程序。我的启动结果是一个文件。我确实读取了一个输入文件并生成了输出文件。
问题是:我得到不同编码的结果。当我通过 Eclipse 启动应用程序时,我会以一种编码方式获得输出文件。当我使用 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 ...我还能尝试什么?