请问,我用jdk编写一个应用程序保存的时候,为什么必须保存ansi编码才能编译成功运行呢??我保存utf-8后,编译不能成功,出现乱码,这是为什么??

解决方案 »

  1.   

    你是用IDE工具编辑java文件的吗,如果是的话要保证IDE工具java编辑的编码和你保存文件时所用的编码一样
      

  2.   

    我没有使用任何的IDE,我就用的是windows xp下的记事本,编写的application的应用程序而已,请问这是为什么?
      

  3.   

    windows默认的是ansi,如果保存成UTF-8,需要在编译时加上额外的参数。用法:javac <选项> <源文件>
    其中,可能的选项包括:
      -g                         生成所有调试信息
      -g:none                    不生成任何调试信息
      -g:{lines,vars,source}     只生成某些调试信息
      -nowarn                    不生成任何警告
      -verbose                   输出有关编译器正在执行的操作的消息
      -deprecation               输出使用已过时的 API 的源位置
      -classpath <路径>            指定查找用户类文件和注释处理程序的位置
      -cp <路径>                   指定查找用户类文件和注释处理程序的位置
      -sourcepath <路径>           指定查找输入源文件的位置
      -bootclasspath <路径>        覆盖引导类文件的位置
      -extdirs <目录>              覆盖安装的扩展目录的位置
      -endorseddirs <目录>         覆盖签名的标准路径的位置
      -proc:{none,only}          控制是否执行注释处理和/或编译。
      -processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称;绕过默认的搜索进程
      -processorpath <路径>        指定查找注释处理程序的位置
      -d <目录>                    指定存放生成的类文件的位置
      -s <目录>                    指定存放生成的源文件的位置
      -implicit:{none,class}     指定是否为隐式引用文件生成类文件
      -encoding <编码>             指定源文件使用的字符编码
      -source <版本>               提供与指定版本的源兼容性
      -target <版本>               生成特定 VM 版本的类文件
      -version                   版本信息
      -help                      输出标准选项的提要
      -Akey[=value]              传递给注释处理程序的选项
      -X                         输出非标准选项的提要
      -J<标志>                     直接将 <标志> 传递给运行时系统
      

  4.   

    楼上不错
    运行一下命令
    -encoding <编码>            指定源文件使用的字符编码 
      

  5.   

    谢谢,另外还请教高手,如何把打包呢?.jar  提示使用manifest,如何使用呢?还有如果生成的类文件如果要被导入的话,需要哪些步骤?
      

  6.   

    C:\Documents and Settings\Administrator>jar
    用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] file
    s ...
    选项包括:
        -c  创建新的归档文件
        -t  列出归档目录
        -x  解压缩已归档的指定(或所有)文件
        -u  更新现有的归档文件
        -v  在标准输出中生成详细输出
        -f  指定归档文件名
        -m  包含指定清单文件中的清单信息
        -e  为捆绑到可执行 jar 文件的独立应用程序
            指定应用程序入口点
        -0  仅存储;不使用任何 ZIP 压缩
        -M  不创建条目的清单文件
        -i  为指定的 jar 文件生成索引信息
        -C  更改为指定的目录并包含其中的文件
    如果有任何目录文件,则对其进行递归处理。
    清单文件名、归档文件名和入口点名的指定顺序
    与 "m"、"f" 和 "e" 标志的指定顺序相同。示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
           jar cvf classes.jar Foo.class Bar.class
    示例 2:使用现有的清单文件 "mymanifest" 并
               将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
           jar cvfm classes.jar mymanifest -C foo/ .
      

  7.   

    真正的问题在于,如果是notepad,保存utf-8文件时会在文件开头加上两个字节的标记。
      

  8.   

    呵呵,关于java编码的问题我觉得还是蛮复杂的,这里有个关于 java编码的文章,看的很清楚
    http://www.roboticfan.com/blog/user_2005/104/archives/2009/200961801645.shtml
      

  9.   

    这里是打包的
    http://20921556.javaeye.com/blog/263974编码
    http://www.blogjava.net/nokiaguy/archive/2008/07/19/216024.html