gpt4 book ai didi

java - Java 13 和 Java 8 中的交叉编译

转载 作者:行者123 更新时间:2023-12-02 08:47:06 24 4
gpt4 key购买 nike

我想加载特定于 Java 版本的 JavaCompiler

这就是我当前获取编译器实例的方式:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

我的目标是根据最初编写的 Java 版本(Java 8 或 Java 13)编译“用户 Java 代码”。

我正在使用 Java 8 构建我的整个源代码。

因此,我得到的 compiler 实例将是 Java 8 特定的,我无法编译 Java 13 代码(如果我错了,请纠正我)。

我安装了 Java 8 和 Java 13。

我从 this article 读到了以下声明

The ToolProvider locates the default compiler in this case. It is also possible to locate alternative compilers or tools by using service provider mechanism.

有什么方法可以加载 Java 版本特定的 Java 编译器吗?有解决办法吗?

或者,如果我使用 Java 13 构建项目,我可以使用 --target--source--release< 编译特定于版本的项目 Java 13 编译器的参数?

最佳答案

所以我最终使用的方法是:

第 1 步:

安装两者Java 8 和 Java 13。

第 2 步:

将 Java 13 设置为默认

两者javacjava

第 3 步:

构建 Java 13 项目

第 4 步:

使用 Java 13 编译器编译 Java 8 和 Java 13 程序。

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

它将为您提供 Java 13 编译器。

第 5 步:

编译时我使用了--release选项。

您必须指定

--release 13对于 Java 13(或者你也没有,因为编译器仅限 Java 13)

--release 8对于 Java 8。

第 6 步:执行类文件:

java 8执行路径。

例如:

path_to_java_8/java Helloworld

对于 Java 13 执行,您可以直接使用 java命令作为 java 13 是默认的

java Helloworld

关于java - Java 13 和 Java 8 中的交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61011205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com