Still can't use google-java-format with Java 17
See original GitHub issueAccording to the changelog we should be able to use spotless with google-java-format and Java 17 without adding extra --add-export
flags to the gradle.properties
.
Unfortunately it still does not work:
...
Caused by: java.lang.IllegalAccessError: class com.google.googlejavaformat.java.JavaInput (in unnamed module @0x206885a0) cannot access class com.sun.tools.javac.parser.Tokens$TokenKind (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.parser to unnamed module @0x206885a0
at com.google.googlejavaformat.java.JavaInput.buildToks(JavaInput.java:349)
at com.google.googlejavaformat.java.JavaInput.buildToks(JavaInput.java:334)
at com.google.googlejavaformat.java.JavaInput.<init>(JavaInput.java:276)
at com.google.googlejavaformat.java.Formatter.getFormatReplacements(Formatter.java:260)
at com.google.googlejavaformat.java.Formatter.formatSource(Formatter.java:247)
at com.google.googlejavaformat.java.Formatter.formatSource(Formatter.java:213)
Using
- Gradle 7.4.2
- Spotless Gradle 6.7.0
- googleJavaFormat enabled with default version (1.15.0)
- MacOS 12.4
Issue Analytics
- State:
- Created a year ago
- Reactions:2
- Comments:6 (1 by maintainers)
Top Results From Across the Web
How to configure Google Java Code Formatter in Intellij IDEA ...
This problem can be solve installing the google-java-format Plugin. Open plugins window ( CTRL + Shift + A ): plugins.
Read more >Zero Config Code Formatter? : r/java - Reddit
We used to use coveos fmt plugin which applies the I opinionated google format, but it was having problems with recent Java versions....
Read more >Java 17 and IntelliJ IDEA - The JetBrains Blog
In this blog post, I'll cover type patterns, guarded patterns, and parenthesised patterns – since they are relevant to pattern matching for ...
Read more >google-java-format: how to work with it?
I think we can not. Shall we have an automated code-style check which basically fetches the change,. checks it out, runs google-java-format over ......
Read more >Upgrading to JDK 17 breaks errorprone [242307248]
BaseErrorProneJavaCompiler (in unnamed module @0x97e5aa8) cannot access class com.sun.tools.javac.api.BasicJavacTask (in module jdk.compiler) ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Fixed in
plugin-gradle 6.7.1
andplugin-maven 2.22.7
.Hmm… Isn’t it an issue for google-java-format? They are using a class from module
jdk.compiler
that is not exported (com.sun.tools.javac.parser.Tokens.TokenKind
). https://github.com/google/google-java-format/blob/v1.15.0/core/src/main/java/com/google/googlejavaformat/java/JavaInput.java#L37On the other hand I can see in the diff of the 1.15.0 release that they add
--add-exports=jdk.compiler/com.sun.tools.javac.parser
in their pom.xml: https://github.com/google/google-java-format/commit/ee81afc93990493701a6f7a2801eff058ac57891I’m not an expert in modules / exports. How is this supposed to work when spotless invokes the google-java-format main class?