我用ant打包jar文件时,源代码是用utf-8编码方式写的,并且在ant的build.xml文件中加了utf-8编码方式,可是打包后的jar文件双击运行起来怎么还是乱码???build.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="package">
<property name="compile" value="compile"></property>
<property name="package" value="tetris"></property>
<target name="preprocess">
<mkdir dir="${compile}"/>
<mkdir dir="${package}"/>
</target>
<target name="compile" depends="preprocess">
</target>
<target name="package" depends="compile">
</target>
<target name="myCompile" depends="preprocess">
<!-- 我就中在下在面指定的编码为encoding="utf-8" -->
<javac  encoding="utf-8" srcdir="src" destdir="${compile}"></javac>
</target>
<target name="myPackage" depends="myCompile">
<jar destfile="${package}/tetris.jar" basedir="${compile}">
<manifest>
<attribute name="Build-By" value="${user.name}"/>
<attribute name="Main-Class" value="w.j.block.Tetris"/>
</manifest>
</jar>
</target>
</project>
jarantencoding

解决方案 »

  1.   

    可以将ant生成的jar包反编译,看是不是乱码。
      

  2.   

    指定的编码只是指定了读.java源文件的编码..你说的乱码是什么意思?在windows下打的包用到Linux下?
    如果是的话,建议你试试
    java -Dfile.encoding=GBK -jar 包名.jar
      

  3.   

    对了,是不是windows下的默认编码都是GBK???
      

  4.   

    最好把你的中文都用unicode编码,国际化的时候都是这样做的。
    不同平台不同的地方都可能出现不一样的编码,所以统一一下
      

  5.   

    <javac  encoding="utf-8"
    这个是指你java文件的编码要为utf-8