相关疑难解决方法(0)

如何在Android Studio和Gradle中设置-source 1.7

尝试在Android Studio中编译项目时出现以下错误:

Gradle: error: diamond operator is not supported in -source 1.6
Run Code Online (Sandbox Code Playgroud)

在我找到的所有项目偏好中,我已将1.7设置为目标.项目SDK中1.7 SDK下显示的路径也是java 1.7安装的正确路径.

即使我在终端中运行java -version,它也告诉我我正在运行java 1.7.

我试图将JAVA_HOME env变量设置为:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

错误不会消失.如何消除错误?

java intellij-idea gradle java-7 android-studio

177
推荐指数
5
解决办法
13万
查看次数

Java 9编译器中的--release标志是什么?

Java 9 javac有一个新的标志--release:

> javac --help
...

--release <release>
    Compile for a specific VM version. Supported targets: 6, 7, 8, 9
Run Code Online (Sandbox Code Playgroud)

-source-target旗帜有什么不同?它只是一个捷径-source X -target X吗?

java javac java-9

62
推荐指数
2
解决办法
8162
查看次数

Lombok 访问 jdk.compiler 的内部包与 Java-16 不兼容

只需将我的一个项目从 Java-15 升级到 16(使用此处的最新版本)。在编译使用 lombok 的项目时,例如:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我有点被堆栈跟踪卡住了

Caused by: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x4e670245) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x4e670245
    at lombok.javac.apt.LombokProcessor.getJavacProcessingEnvironment (LombokProcessor.java:433)
    at lombok.javac.apt.LombokProcessor.init (LombokProcessor.java:92)
    at lombok.core.AnnotationProcessor$JavacDescriptor.want (AnnotationProcessor.java:160)
    at lombok.core.AnnotationProcessor.init (AnnotationProcessor.java:213)
    at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init (AnnotationProcessor.java:64)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init> (JavacProcessingEnvironment.java:702)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next (JavacProcessingEnvironment.java:829)
Run Code Online (Sandbox Code Playgroud)

现在,至少我认为我知道解决这个问题的技巧,但即使在尝试以下配置时 maven-compiler-plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>16</source>
        <target>16</target>
        <!--                    <release>16</release>-->
        <compilerArgs>
            <arg>--enable-preview</arg>
            <arg>-Xlint:all</arg>
            <arg>--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
        </compilerArgs>
        <!--for unmappable …
Run Code Online (Sandbox Code Playgroud)

java incompatibility maven lombok java-16

31
推荐指数
5
解决办法
2万
查看次数

如何在Gradle构建中指定所需的Java版本

我想在Gradle构建文件中设置所需的Java版本,例如7或8,不必指定本地JDK安装的实际路径.

这可能吗 ?

java gradle

13
推荐指数
4
解决办法
2万
查看次数

转到OpenJDK-11但在Java 8中编译

我有一个现有的Spring boot应用程序,我建立gradle.这些天我一直在使用JDK / JRE 8,现在我正在尝试使用JDK-11

因此,要检查兼容性,我设置JAVA_HOMEJDK-11,但试图编译Java 8模式

我在下面添加了以下块 build.gradle

compileJava {
    targetCompatibility = '1.8'
}
Run Code Online (Sandbox Code Playgroud)

然后我JAVA_HOME明确地设置set JAVA_HOME=C:\Users\arun\Desktop\jdk-11.0.1

然后执行 gradlew clean build

但是我因以下例外而停止了

> Configure project :
Build Version = build-182-ga03cf6c

> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> warning: source release 11 requires target release 11
Run Code Online (Sandbox Code Playgroud)

如何指向我JAVA_HOMEJDK-11,但仍然在执行它Java-8 …

java gradle java-8 java-11

7
推荐指数
2
解决办法
2868
查看次数