我使用Eclipse
Version: Mars.2 Release (4.5.2)
Build id: 20160218-0600
还有Maven(mvn -v)
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00)
Maven home: C:\Daten\maven
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_60\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
我的%JAVA_HOME%已设置为
C:\Program Files\Java\jdk1.8.0_60
我的Java版本是(java -version)。
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
我使用 -vm 参数(指定java jdk版本)来运行eclipse并在其中添加外部maven安装。导入项目后,出现了一些奇怪的问题。有些类在eclipse中是红色的,而有些不是。我使用javap -version命令检查它们都是使用主版本52进行编译的。我创建了一个新的工作区并得到了相同的结果,非常奇怪。如果我使用eclipse打开一个“红色”的Java类,并保存它,则可以消除错误(没有编译错误)。
我真的不知道问题出在哪里。
以下是我在eclipse中遇到的错误:
Syntax error on token "package", assert expected
Syntax error on token "import", throw expected
作为父POM,我使用版本为1.3.3-RELEASE的spring-boot-starter-parent。我还指定了所有我知道的属性,如java.version、maven.compiler.source/target和项目构建源和输出编码。我也尝试了定义maven编译器插件,但没有帮助。
以下是代码示例:
package com.test;
public class AExample {
public static void main(String[] args) {
System.out.println(args.length);
}
}
看起来它完全依赖于我放置类的包。 对于某些包,它只是正常编译,而对于某些包,则会出现以下错误
com.test cannot be resolved to a type AExample.java line 1
Illegal modifier for the local class AExample; only abstract or final is permitted AExample.java line 3
Syntax error on token "package", assert expected AExample.java line 1
Syntax error, insert "ClassBody" to complete ClassDeclaration AExample.java line 3
The nested type AExample cannot hide an enclosing type AExample.java line 3
在不同的包中完全相同的类没有产生那个错误,只在一个特定的包中出现。有什么想法我可以检查吗?