我正在使用java 11处理一些依赖项并编译到旧版本。我将一个依赖项迁移到Java11并正常工作,但我们仍然必须在Java8上运行Tomcat 7或8。是否可以使用--的释放
标志来编译使用var
,流(). drop而(…)
或Map.of(…)
并在8上运行的代码?
发布标志表明应该可以:
--发布版本 针对特定 VM 版本的公共、受支持和记录的 API 进行编译。支持的版本目标为 6、7、8 和 9。
这个项目是一个依赖项,独立运行在SprinBoot2.1和Java11上很好,但需要在Java8上运行。
我的maven插件编译器设置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>8</release>
</configuration>
</plugin>
但是这禁止编译
尝试编译:
return List.of("dsadas", "dasdadddds", "£dsada", "dasdas")
.stream()
.dropWhile(s -> s.contains("das"))
.collect(Collectors.toList());
throws错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project api: Compilation failure: Compilation failure:
[ERROR] /home/agilob/Projects/.....java:[58,13] cannot find symbol
[ERROR] symbol: class var
[ERROR] location:
[ERROR] /home/agilob/Projects/....java:[43,20] cannot find symbol
[ERROR] symbol: method of(java.lang.String,java.lang.String,java.lang.String,java.lang.String)
[ERROR] location: interface java.util.List
[ERROR] -> [Help 1]
供创意使用
这对我有用
现在有了 https://github.com/bsideup/jabel
Jabel - javac 12插件,使其发出Java 8字节码
这是不可能的。只允许目标Java平台的API方法和类。
这在JEP 247中定义:为旧平台版本编译
定义了一个新的命令行选项--release,它自动配置编译器以生成将链接到给定平台版本的实现的类文件。
说可以用的相关部分是:
对于N
对于N
Java8引入了重要的新语言特性,如lambda表达式。 语言中的这些变化是否伴随着编译字节码中的重大变化,从而阻止它在不使用某些反向翻译器的情况下在Java7虚拟机上运行?
问题内容: Java 8引入了重要的新语言功能,例如lambda表达式。 语言的这些变化是否伴随着已编译字节码的重大变化,从而阻止了它在Java 7虚拟机上运行而无需使用某些逆向转换程序? 问题答案: 不可以,在源代码中使用1.8功能要求你以1.8 VM为目标。我刚刚尝试了新的Java 8版本,并尝试使用进行编译,但编译器拒绝了:
我的构建服务器安装了Open JDK 8,我的正式服安装了oracle JRE 8。是否有可能在开放的JDK中编译代码并在Oracle JRE 8中部署工件?
问题内容: 我尝试在Android上的Janino上使用这些东西,并得出结论说,它们根本无法在Dalvik VM中运行。 所以我只想问一个简单的问题:在 Android上 ,是否有可能在运行时编译包含代码的字符串以供应用程序使用。如果是这样,是否有让我这样做的库和/或您可以共享一个代码示例来做到这一点? 对于 (一个非常简单的) 示例,如果我有一个包含以下内容的String对象: 作为一根巨大的弦
问题内容: 我知道PHP在服务器上运行之前先被编译为字节码,然后可以缓存该字节码,这样就不必每次访问Web时都重新解释整个脚本。 但是,您可以“编译” PHP代码并上载一个二进制文件,该文件将由字节码解释器运行吗? 问题答案: 提出这个问题后,Facebook推出了 适用于PHP的HipHop, 这可能是迄今为止测试最完善的PHP编译器(它运行着世界十大网站之一)。但是,Facebook停止使用H
是否可以将Java字节码自动转换为IJVM?你知道有什么可能性吗?