I am trying to compile a Maven Java project with files saved as UTF-8 that have a BOM, but I am getting an illegal character error from the BOM character in the despite I having both the project.build.sourceEncoding
as well as the encoding
of the maven-compiler-plugin
set to UTF-8
.
Am I missing an additional setting? Can I even get this to compile without removing the BOM (not allowed to make any change to the source, but I can modify the POM)?
The error:
java: C:\code\main\src\test\java\net\initech\finance\FinanceTest.java:1: illegal character: \65279
The property:
<properties>
...
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...
</properties>
The plugin:
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
If it's UTF-8 and not UTF-16, the BOM serves no purpose at all. Why is it put in there? Also, only Java is complaining here -- not Maven.
Check out JDK-4508058 : UTF-8 encoding does not recognize initial BOM which is related.
1.Close your project.
2.Try to open your file by notepad++,and switch to 'UTF-8 without BOM'.
3.Reopen your project again.
This happened to me after I opened a Java class using notepad. This changed the Encoding of the file.
A simple trick I did is this:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With