如上图:
环境 是 刚换的系统,重装的Intellj,直接双击老的皇帝项目中的idea的 .iml文件,结果 打开 intellj 后,进行 ctrl +shift +F9 编译时 尽然报 错误提示,提示内容 有:
“xxx包不存在” 、“找不到符号”、“未结束的字符串字面值”、“需要;” 、“需要)” 等错误,可以我看了项目中右边根本就没有红X ,即项目中根本就没有报错误提示,只是下边的warnings页签框报一大推错误而已,不知道为啥这边报错,报错点对应代码右边为啥又没有红x提示错误?
还有就是 我去看一下错误的代码,结果代码也没有什么错误。提示说找不到包的或者 类的,我都重新 引用了一遍 编译时还是报错,不知道什么情况? 不管是我重新编译 还是build项目 还是rebuild项目 还是compile module 还是 make module 都没用,还是报一大推上边的错误,无解了。
结果 网上一搜 原来是编码的问题,解决如下:
如下图只要 把三处 都指明utf-8即可,不要用 "default system encoding"。这个问题一般出现在刚装的intellj 或者 从 eclipse 导入的项目 还没开始 设置编码所致,都弄成utf-8 即可(如果还不行看本页最下边)。
如果上边三处都改为utf-8了即 把idea 和项目 全局整体改为utf-8,但是 项目中极个别的类 文件 的编码还是特殊的有问题的,即虽然是全局上把项目默认改为utf-8,但已存在的项目中的一些类的java文件 可能还是其他的编码,那怎么办,那就是根据提示最上边的3张图中提示 哪个类报错就打开哪个类文件 然后 看idea最下边是什么编码,如图:
上边的这个编码设置是当前 打开的这个java类文件的 编码,不是全局编码,所以 不仅仅要全局编码要对,这个单独的java文件编码也要对,假如 这边左击改为utf-8后还是不行的话,那可能就是idea 反应慢的问题,即去 项目根目录 下的 .idea 文件夹下找到 encodings.xml 文件,打开它,如图:
里面有2个类,一个 是DebugGameServer.java 和 ManageHandler.java 这2个类 刚好就是 最上边 3张图中 报错的2个类文件,这里一看 现在 第一个DebugGameServer.java 仍然是gbk编码,而第二个类已经是utf-8了(刚被我改了),现在还有一个类为gbk,所以仍然还是报错,那项目切换到DebugGameServer.java 这个类,然后把最下边改为utf-8即可,如果 改了还不行,那还去上边那个encodings.xml 文件 文件中看 还有哪个编码是错误的java类文件,找到一个改一个,直到改好为止。
注:有的是时候可能多个类文件的编码有问题,但是后台在启动时只会包几个别类错误,而不是全部在 encodings.xml 文件 中显示出所有编码有问题的类,不管,打开encodings.xml 文件看一个改好后再启动项目,报错的话再回来encodings.xml 文件 中看还有哪些新显示出的有问题的类文件,再依次修改下去。
注:有时候报错的话如果不知道是什么错误,其实 在 警告框中已经给出了答案,如:
注:类文件编码错误可直接在idea最下边看到当前类文件是什么编码:
注:有的时候改了类文件的编码后encodings.xml 文件中也都会了后,可是还不行,那可能是idea切换有问题,可以先再改为错误的编码然后再改回正确的编码,让idea 有一个重新编码的操作即可。
@ 孙雅薇 那 刚 从svn down的项目,是 eclipse 的环境下的项目,结果用intellj 载入项目 后 出错,显示 包一个sun.com.xxx 一个错误,结果我点这个报错的类 是可以找到 jar包的,那也是上边的问题,我开始按照上边改编码 ,结果编码改完 那个类 还是红色,没法 启动,结果我是 把 报错的类 都改成 gbk(intellj右下角直接改为gbk),结果就不报错了,就可以 启动服了。然后开始起服,结果报乱七八招的错误,先 把 ccs 那 ip 有问题,我给直接注释掉了;然后又 报 KeyValueDictCache 中 ips 设置有问题,都是报格式错误,结果我断点明明都是数字结果 在判断数字 那反而还是报错,结果我想想估计 是tm的 编码问题,结果我把 原来红色类的编码 由 gbk 再改回utf-8,类也不会报错了,这边 启动服,也不报错了(游戏开服 报一些 ip 设置 数据格式的异常,但断点明明都是数字 没问题的)。无非就报一些 活动配置 和 没有 在 dict_server 表中加入 刚驾服 的ip(少了这个ip 客户端登陆是 报错 传递参数 为空 之类错误)。