英文:
Error:java: java.lang.ExceptionInInitializerError com.sun.tools.javac.code.TypeTags when trying to run maven
问题
我对Maven还不太熟悉,但我想使用它来运行一个简单的deeplearning4j程序。在添加了所有必要的依赖项后,我得到了以下错误:
Error:java: 不支持版本 5 的发布
在按照[此页面](https://dev.to/techgirl1908/intellij-error-java-release-version-5-not-supported-376)上的说明进行操作后(更改我的SDK、语言和目标字节码为11),我得到了以下错误:
我遇到了这个问题:
Error:java: java.lang.ExceptionInInitializerError
com.sun.tools.javac.code.TypeTags
Error:java: java.lang.ExceptionInInitializerError
我还尝试了设置JDK 14,但是我得到了相同的错误。这是我的pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Deep</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.11</maven.compiler.source>
<maven.compiler.target>1.11</maven.compiler.target>
<dl4j.version>0.9.1</dl4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native-platform</artifactId>
<version>${dl4j.version}</version>
</dependency>
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-core</artifactId>
<version>${dl4j.version}</version>
</dependency>
<dependency>
<groupId>org.datavec</groupId>
<artifactId>datavec-api</artifactId>
<version>${dl4j.version}</version>
</dependency>
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-api</artifactId>
<version>1.0.0-beta3</version>
</dependency>
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-play_2.11</artifactId>
<version>0.9.1</version>
</dependency>
</dependencies>
</project>
如果有人能够解释一下我可能做错了什么,我将不胜感激。
英文:
I'm new to maven but I would like to use it to run simple deeplearing4j program. After adding all the necessary dependencies I get the following: <br><br>
Error:java: release version 5 not supported
<br><br>
After following the instructions at this page (changing my SDK, language and target byte code to 11)<br><br>
<br><br>
I'm getting this:<br><br>
Error:java: java.lang.ExceptionInInitializerError
com.sun.tools.javac.code.TypeTags
Error:java: java.lang.ExceptionInInitializerError
I've also tried setting JDK 14 but I get the same error. Here is my pom.xml file:<br><br>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Deep</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.11</maven.compiler.source>
<maven.compiler.target>1.11</maven.compiler.target>
<dl4j.version>0.9.1</dl4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native-platform</artifactId>
<version>${dl4j.version}</version>
</dependency>
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-core</artifactId>
<version>${dl4j.version}</version>
</dependency>
<dependency>
<groupId>org.datavec</groupId>
<artifactId>datavec-api</artifactId>
<version>${dl4j.version}</version>
</dependency>
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-api</artifactId>
<version>1.0.0-beta3</version>
</dependency>
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-play_2.11</artifactId>
<version>0.9.1</version>
</dependency>
</dependencies>
</project>
If anybody can shed some light on what I might be doing wrong here I would appreciate it.
答案1
得分: 55
这是错误的。
<maven.compiler.source>1.11</maven.compiler.source>
<maven.compiler.target>1.11</maven.compiler.target>
在 Java 1.9 之后,版本命名已更改。在 pom.xml 中进行以下更改。
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
从 Java 10 开始遵循相同的约定。
实际问题是:库中的一个依赖 org.deeplearning4j:deeplearning4j-core:jar:0.9.1:compile,此 jar 依赖于 org.projectlombok:lombok:jar:1.16.16:compile。
所以这是 Lombok 的一个问题,在后续版本中他们进行了修复。要查看所有传递依赖项,您可以运行 mvn dependency:tree
命令,查看您引入的库的所有传递依赖项。
我在 pom 中添加了以下依赖项,解决了这个问题。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
英文:
This is wrong.
<maven.compiler.source>1.11</maven.compiler.source>
<maven.compiler.target>1.11</maven.compiler.target>
Post Java 1.9, the version naming has changed. Make the following changes in the pom.xml.
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
The same convention follows from 10+ Java version.
The real issue is: one of library org.deeplearning4j:deeplearning4j-core:jar:0.9.1:compile this jar having a dependency on org.projectlombok:lombok:jar:1.16.16:compile.
So this was an issue with Lombok which they fixed in a later version. To see all transitive dependencies you can do a mvn dependency:tree
and see all transitive dependencies of the libraries you have brought in.
I have included the below dependency in the pom and that resolved the issue.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
答案2
得分: 17
将以下内容添加到 pom.xml 文件中:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
英文:
Add this to pom.xml:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
答案3
得分: 12
可能是因为在运行IntelliJ应用程序时没有在IDE中配置项目SDK设置,导致出现这些问题。
英文:
It could be a reason of getting this issues while running application Intellij that you haven't configuration Project SDK setting in IDE.
答案4
得分: 9
我在使用JDK 10编译Java 8源代码时也遇到了这个错误。
更改环境变量JAVA_HOME
为JDK 8的安装目录后,这个错误消失了。
英文:
I also got this error, when using jdk 10 to compile java8 source code.
After changing environment variable JAVA_HOME
to jdk8 home dir, this error disappear.
答案5
得分: 1
如果您在使用jdk8运行项目仍然遇到相同的错误,请按照以下2个步骤操作:
- 检查您是否能够从IntelliJ的maven工具栏中执行您的maven项目,而不是从终端中执行。
- 如果您的项目构建成功,请检查您的JAVA_HOME是否设置正确。(在我的情况下,我从bash切换到了zsh,而JAVA_HOME未设置)。
英文:
If you're using jdk8 to run your project and still face the same error.
Please follow the following 2 steps.
- check whether you're able to execute your maven project from IntelliJ's maven bar, instead of from the terminal.
- If your project builds then check whether your JAVA_HOME is setup correctly. (In my case I switched from bash to zsh, and JAVA_HOME. was not setup)
答案6
得分: 0
我也遇到过那个问题。
检查JAVA_HOME变量。对于Ubuntu,请在终端中输入echo $JAVA_HOME
。如果你看到这个和java -version
之间的差异,你需要将合适的JDK版本设置到你的JAVA_HOME,就像下面这样:
export JAVA_HOME=YOUR_JDK_BIN_PATH
。
英文:
I have also faced that problem.
Check the JAVA_HOME variable. For ubuntu, go to the terminal and write echo $JAVA_HOME
. If you see the difference between this and java -version
you will need to set the appropriate version of JDK to your JAVA_HOME like below
export JAVA_HOME=YOUR_JDK_BIN_PATH
.
答案7
得分: 0
我遇到了类似的问题,通过将JDK版本从11更改为8,我成功解决了。顺便说一下,这并不是在JDK 11中以8模式运行。实际上,您需要一个JDK 8捆绑包。
英文:
I had a similar issue and I was able to solve by changing JDK version from 11 to 8. By the way, this is not running in 8 mode using JDK 11. You actually need a JDK 8 bundle.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论