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

Eclipse 2018-09不会编译Java 11源代码; 认为低于1.7

郁隐水
2023-03-14
问题内容

我正在Windows 10上运行Eclipse 2018-09(4.9.0),正在使用Open JDK 11 GA。我有一个指定为使用Java 8源代码的Maven项目。

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

在命令行上使用Maven 3.5.3可以很好地进行编译。使用Eclipse Eclipse 2018-09(4.9.0)也可以很好地进行编译。

我将编译Java版本更改为Java 11:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>11</maven.compiler.source>
  <maven.compiler.target>11</maven.compiler.target>
</properties>

使用Maven 3.5.3在命令行上仍然可以正常运行。但是在Eclipse 2018-09中,到处都是错误:

'<>' operator is not allowed for source level below 1.7
Constructor references are allowed only at source level 1.8 or above
Default methods are allowed only at source level 1.8 or above

你明白了。

我已经习惯Alt+F5了在Eclipse中更新我的Maven项目(和子项目)。我已经完成了彻底的清理和重建。

因为这可以在命令行上使用Maven很好地编译,所以这一定是Eclipse问题,不是吗?当然,Eclipse尚不支持所有Java 11新功能,但是此代码不具有Java 11特定功能。怎么了?


问题答案:

更新:自版本4.10(2018年12月19日发行)以来,Java 11已完全集成在Eclipse中,因此不再需要安装此插件。

由于某些原因,您需要安装其他Eclipse插件“ Eclipse 2018-09(4.9)的Java 11支持”(即使在Eclipse Photon 4.9中)

它表明该插件在Eclipse Marketplace中不再可用。我有人找到了其安装网址,请在此处添加:

适用于Eclipse-STS 4.0.1(基于Eclipse 4.9),Maven 3.6.0(具有此Maven编译器插件配置

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>                
        </plugin>


 类似资料:
  • 编译solidity源代码 通过solc编译器编译solidity代码到字节码。你可以参考solidity安装文档在本地安装编译器。 编写solidity代码运行: $ solc <contract>.sol --bin --abi --optimize -o <output-dir>/ bin和ABI编译器参数都需要充分利用web3j中的智能合约。 bin,输出包含十六进制编码的solidit

  • 问题内容: 如何将Android DEX(VM字节码)文件反编译为相应的Java源代码? 问题答案: It’s easy 获取以下工具: 1)dex2jar将dex文件转换为jar文件 2)jd-gui查看jar中的java文件 由于dex2jar进行了一些优化,因此源代码具有很高的可读性。 Procedure:: 这是有关如何反编译的过程: 步骤1: 将中的转换为 注1:在Windows计算机上

  • 问题内容: 现在显然,解析器本身并没有什么用(除了静态分析)。我想将转换应用于AST,然后将其编译回源代码。应用转换不是什么大问题,普通的Visitor模式应该可以。 我目前的问题是如何将AST编译回源代码。我基本上看到两种可能性: 使用一些预定义的方案编译代码 保留原始代码的格式,并仅在已更改的节点上应用1.。 现在,我想专注于1.,因为2.似乎很难完成(但是,如果您有关于此的提示,我想听听他们

  • 有时,我们需要从源代码重新编译一个Kali包.幸运的是用APT下载源代码包,进行必要的修改后再用Debian工具重新编译是如此的简单.此例中,为了添加额外的Mifare Key硬编码到mifare格式化工具,我们将重新编译libfreefare这个包. 下载包的源代码 # Get the source package apt-get source libfreefare cd libfreefar

  • 代码不编译。我不明白错误是什么,请帮忙) 错误文本:g-Wall-c“main.cpp”(/media/ad/4GB-NTFS/prog/laba2)main。cpp:In函数“int main()”:main。cpp:46:12:错误:调用“Record::Record()”记录r1;^主要的cpp:12:1:注意:候选者:Record::Record(std::\u cxx11::string

  • 有些情况下,比如我们自己从Github下载了最新的代码,或者自己临时修改了一点代码,想要编译后的Build文件夹的内容,需要自行编译源码,这里介绍一下编译的方法 下载源码之后,可以发现根目录存在一个gulpfile.js文件,编译源码就是使用 gulp 编译的成果有四部分, – 生成Apps文件夹,包括helloworld程序和沙盒Sandcastle – 编译后的部署环境下的Cesium文件夹