当前位置: 首页 > 知识库问答 >
问题:

NetBeans项目中的exec-maven-plugin Java版本不同于maven-compiler-plugin Java版本

章昊
2023-03-14

我使用低于IDE使用的系统环境JAVA_HOME(1.8)启动NetBeans IDE12.0(14)。Maven执行的IDE输出窗口似乎显示项目是用JDK14的JAVA_HOME运行的,以这种方式运行项目文件。

但是exec-maven-plugin在Java.lang.unsupportedClassVersionError:com/mycompany/start是由最新版本的Java运行时(类文件版本55.0)编译的,此版本的Java运行时只识别类文件版本高达52.0

这似乎表明Maven在IDE中运行在1.8下,忽略了IDE自己的重写设置JAVA_HOME 14。它使用JAVA_HOME中设置的JDK,因为如果我在IDE启动之前将JAVA_HOME设置为14.0,那么它就可以工作了。

我正在寻找正确的方法,正确的位置,专门为任何项目设置JDK,不管IDE启动时处于活动状态的JAVA_HOME设置是什么。

我的情况可以通过运行IDE 12.0和安装JDK 14.0,但将java_home设置为1.8来重现。在IDE启动之前。我使用从https://wicket.apache.org/start/quickstart.html命令生成的Maven项目-所有这些都设置为默认值。要运行的文件是start.java。

这对我来说很重要,因为我必须用不同的JDK打开许多不同的项目,所以每次用不同的JAVA_HOME设置重新启动IDE是不现实的。事实上,我的设置似乎定义得很差--我一定遗漏了什么。

共有1个答案

宗啸
2023-03-14

对于maven,如果您希望项目的字节码为1.8,那么即使您使用的是较新的JDK,也可以尝试设置编译器插件使用的变量。

<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>

https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

如果您想要一个完全不同的java安装,那么您可能需要查看工具链。但我只会走这条路,如果上面的不符合你的需要。https://maven.apache.org/guides/mini/guide-using-toolchains.html

 类似资料:
  • 我不断得到原因:java.nio.file.nosuchfileException:C:\Program Files\Apache Software Foundation\Tomcat 9.0\WTPWebApps\WebApp\WEB-INF\lib\Jackson-DataBind-2.9.6.jar Exception。我的pom.xml文件中有2.9.6版本的依赖项,但Maven depe

  • 问题内容: 我有一个项目,其中有两个使用sqlline的单独模块和另一个依赖jline的库(例如OtherLib)。但是在不同版本上。 Module1使用Sqlline取决于 jline 2.10 Module2使用OtherLib取决于 jline 0.9.94 并且这两个版本不兼容。因此,我设置了类路径,以便Module1首先在 $ HOME / lib / module1 文件夹中搜索,而M

  • 问题内容: 在构建具有许多依赖项的Maven项目时,其中一些依赖项依赖于同一库,但使用的版本不同,这会在运行应用程序时导致错误。 例如,如果我添加两个不同的项目依赖项,A和B都依赖于apachecommonshttp客户端,但每个依赖于不同版本,则一旦类加载器加载了A的apachecommons http客户端类,B就会尝试使用它们,因为它们已经由类加载器加载。 但是B的字节码取决于所加载类的不同

  • 我有一个具有以下结构的maven项目 即Project有它的pom.xml(作为pom的包)并有模块。每个模块都有一个节中,可以将其设置为“project”的工件(在根pom.xml中定义),也可以将其设置为任何其他project2/project3/projectn工件。 现在,由于这个原因,我看看如果Project1的根pom.xml设置为0.0.1-snapshot,并且如果我想创建一个版本

  • Maven是3.1.0。 2.2失败的原因是什么?如何解决这个问题?

  • 问题内容: 在处理POM之后,Jenkins构建有什么方法可以知道项目的Maven版本号吗? 我有一些项目由Maven控制版本控制,在构建后的工作中,我们想创建一个Debian软件包并调用一些shell脚本。我需要的是Maven以前可以用作Jenkins环境变量的版本号,因此我可以将其传递给构建后操作。 需要明确的是,我 没有 需要知道如何让詹金斯版本号传递到Maven的; 相反,我希望Maven