开发者社区> 邴越> 正文

javac编译提示编码GBK的不可映射字符

简介:
+关注继续查看

使用命令行javac命令编译java文件,

提示错误:编码GBK的不可映射字符

在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe会获得我们操作系统默认采用的编码格式。

JDK根据操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),把源程序从默认编码格式转化为JDK内部默认的UNICODE格式放入内存中。然后把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,最后JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。

对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。

解决办法:使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java

当然,更好的办法是使用IDE输出,比如Eclipse expert jar文件。

 

如何将一个目录下的子目录和文件打包成war包?

war文件实际上和jar文件一样,只是改变了名称(后缀名)。

如:将D:\myweb 目录下的页面程序打包成myweb.war

打开命令行窗口,进入D:myweb 目录,

执行:jar -cvf myweb.war .  最后的.代表当前目录。

当然,这只是一种压缩格式,生成的war文件不能在服务器中部署,需要部署,可以使用 Maven 或者 IDE中 expert war文件。

 

将非eclipse项目导入eclipse中?

非eclipse项目(没有相应的.project文件),在Eclipse中执行以下步骤:

打开File-new-Java Project,然后Use default location中改为要导入的项目的文件的地址。

 


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
编译JAVA的错误: 编码ascii的不可映射字符
编译JAVA的错误: 编码ascii的不可映射字符
22 0
javadoc main.java:3: 错误: 编码GBK的不可映射字符
javadoc main.java:3: 错误: 编码GBK的不可映射字符
22 0
VS2019 高级保存设置UTF-8编码-源代码乱码问题
VS2019 高级保存设置UTF-8编码-源代码乱码问题
440 0
错误: 编码GBK的不可映射字符
错误: 编码GBK的不可映射字符
32 0
maven编译遇到"编码GBK的不可映射字符"警告的处理
maven编译会遇到"编码GBK的不可映射字符"的警告,来看看出了啥问题,怎么处理
63 0
【问题一】notepad++编辑器写Java代码,无法编译出现错误:编码GBK的不可映射字符
今天在学习“流程控制”一节,用notepad++写代码时,一直报错,无法编译。看了好多遍代码,代码完全正确,非常纳闷。
466 0
解决 java “错误:编码GBK 的不可映射字符”
javac -encoding UTF-8 HelloWorlewww.java网名:浩秦; 邮箱:root#landv.pw; 只要我能控制一個國家的貨幣發行,我不在乎誰制定法律。金錢一旦作響,壞話隨之戛然而止。
967 0
+关注
邴越
关注分布式系统及高可用架构,探讨职业规划,实践持续学习,公众号「架构进化论」
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载