当前位置: 首页 > 面试题库 >

当我将Maven Java编译器插件从1.5更改为1.6时,为什么会得到一个不可映射的字符来编码UTF-8?

苏鸿波
2023-03-14
问题内容

我有一个Java项目,正在使用Apache Maven。一直以来,我一直在使用在pom.xml文件中定义的参数 source = 1.5
target = 1.5的 Maven Java编译器插件。由于我将其更改为 source = 1.6target = 1.6
,因此出现以下错误:

XXXXXXXX.java:[54,27]无法映射的字符,用于编码UTF-8

我一直在测试不同的配置,并且将 showWarnings 的值设置为 true, 所以我可以看到 目标的 值均为 1.5
,这是警告,而不是错误。

无论如何,我都需要更改Java编译器配置。有人知道为什么会这样吗,如何在不编辑所有Java源文件的情况下解决此问题(现在有成百上千个与此问题相关的文件)?


问题答案:

我的问题是:为什么这是source = 1.6和target = 1.6的错误,并且是source = 1.5和target = 1.5的警告?

简短的答案,因为他们这样说:

-source 1.6这是默认值。Java SE 6中未引入语言更改。但是, 现在将 源文件中的编码错误
报告为错误,而不是像以前那样警告

@DaveG关注点是有效的,您应该尝试:

  • 更改源文件的文件编码
  • 使用IDE查找/替换这些字符


 类似资料:
  • 问题内容: 我需要编译我的源代码以与jre 1.6兼容。但是,当我尝试将javac任务的编译器属性设置为javac1.6时,ant仍将使用javac1.7编译我的代码。我也尝试将编译器版本设置为“现代”,但没有帮助。 我的JAVA_HOME设置为JDK 1.6: 我的ant版本是:Apache Ant(TM)版本1.8.2 根据这篇文章,ant使用自己的编译器。如何覆盖ant默认值?另外,根据本文

  • 我正在使用Spring WebFlux开发一个API REST,但在上传文件时遇到了问题。它们被存储了,但我没有得到预期的返回值。 我就是这么做的: 接收通量 将部件强制转换为文件部件。 使用transferTo()保存零件(这返回一个单声道 ) 使用文件名将Mono 映射到Mono 。 向客户端返回通量 。 存储服务

  • 我试图替换包含的GCC4.2。我的Mac Book Pro上有1个编译器,使用最新版本的Mac OSX,但无法找出我做错了什么: 这个屏幕从我的外壳上刮下来对我来说也没有意义: Johans MBP:bin johanlindfors$gcc--version 配置为:--prefix=/Applications/Xcode。app/Contents/Developer/usr——带有gxx in

  • 在index.hpp中,我创建了一个具有多个数据成员的类,如、等。我在类外部定义了一个构造函数。在program.cpp中,我创建了一个名为SAM的对象。当我试图编译它时,它显示错误。什么原因? Program.cpp index.hpp 错误信息

  • 问题内容: 我有一个带有“ñ”字符的字符串,并且我有一些问题。我需要将此字符串编码为UTF-8编码。我已经通过这种方式尝试过,但是没有用: 如何将该字符串编码为utf-8? 问题答案: Java中的对象使用无法修改的UTF-16编码。 唯一可以使用不同编码的是。因此,如果你需要UTF-8数据,则需要一个。如果你有一个包含意外数据的,则问题出在较早的地方,该错误地将一些二进制数据错误地转换为a (即

  • 我现在已经为javac ant任务问题苦苦挣扎了很长时间。问题是ant显然忽略了设置为1.5的target属性: 目标和源设置为1.5。运行任务时出现编译错误: 根据java docs(link)方法,createStruct是在Java1.6中引入的,所以我知道ant是在编译到1.6而不是像我礼貌地要求的那样编译到1.5。 我已经尝试了所有我能在网上找到的,现在我放弃了。有人能帮帮我吗?非常请.