maven编译java文件的时候发现总提示非法字符

参考方案一:试验失败
个人认为在执行命令,mvn clean install的时候,经常会遇到 

非法字符:\65279     非法的表达式开始  等等一些奇怪的错误。

个人认为先看看你的maven配置的编码格式。 

  <properties> 

      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 

  </properties>

 

 在确认POM文件中已有上述<project.build.sourceEncoding>内容的前提下,增加以下内容(如已包含maven-compiler-plugin的相关内容,则只需在相应位置增加红色字体部分内容):

<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<maven-compiler-plugin.version>2.3.2</maven-compiler-plugin.version>
	<junit.version>4.10</junit.version>
	<log4j.version>1.2.16</log4j.version>
	<slf4j.log4j.version>1.6.4</slf4j.log4j.version>
	...
</properties>


<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven-compiler-plugin.version}</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
					<compilerArguments>
						<verbose />
					</compilerArguments>
				</configuration>
			</plugin>
		</plugins>
	</build>

注意: 

    1、同时指定<project.build.sourceEncoding>属性和<encoding>的方式可适用于Maven2和Maven3。

 

    2、在Maven3中可以只增加<project.build.sourceEncoding>属性而不指定<encoding>,即能解决编译问题。如果只指定<encoding>编译不会出错,但会出现以下警告。建议两者都进行指定或只指定前者。警告信息如下:

[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!

 

    3、在Maven2中,如果只指定<project.build.sourceEncoding>属性则编译出错;如果只指定<encoding>编译不会出错,但会出现与第2点类似的警告,建议两者都进行指定,以免对运行产生影响。

 

    执行mvn,生成好jar包并在其它工程引用此jar及其源码jar,如果还是乱码,可能就是eclipse的配置问题了,确认windows->Preferences->general->Workspace->Text file encoding设置为UTF-8

    确认windows->Preferences->general->Content Types->右侧Context Types树,点开Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update







参考方案二:试验成功
我用java才进行编译时出现 非法字符: \65279 D:\java>javac -encoding UTF-8 Hero.javaHero.java:1: 非法字符: \65279?/* */ package app.game.entity;


具体解决方案:

把你的java文件另存一下,注意编码方式设置成ANSI






本人最后实践成功的是用NodePad++将对应的java文件的格式存成了ANSI,然后发现了其中的乱码,删掉后保存,再次编辑即通过。

你可能感兴趣的:(maven编译java文件的时候发现总提示非法字符)