微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让maven使用已安装的java创建jar文件?

如何解决如何让maven使用已安装的java创建jar文件?

我正在尝试从我的 spring 项目创建一个 jar 文件。我使用命令 mvn package。这些是我的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.0-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.cgny</groupId>
    <artifactId>apm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>apm</name>
    <description>APM</description>
    <properties>
        <java.version>16</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- latest influxdb dependency -->
        <dependency>
            <groupId>org.influxdb</groupId>
            <artifactId>influxdb-java</artifactId>
            <version>2.21</version>
        </dependency>


        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20180130</version>
        </dependency>

        <!-- XMl Parser -->
        <dependency>
            <groupId>org.jdom</groupId>
            <artifactId>jdom2</artifactId>
            <version>2.0.3</version>
        </dependency>

        <!-- thymeleaf -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>2.5.2</version>
        </dependency>



    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>

源和目标已设置为 java 1.8,但是当我使用 java -jar 运行 jar 文件时,出现 UnsupportedClassversion 错误

我知道这是因为编译项目的 java 版本与我用来运行 jar 文件的版本不同,但我的 java 版本是 1.8.0_51,我也尝试将其作为目标和源pom 文件,结果相同。

JAVA_HOME 和 PATH 变量已设置为正确的目录。

如何配置 maven 使其仅使用已安装的 java?

编辑:错误信息-

Exception in thread "main" java.lang.UnsupportedClassversionError: com/cgny/apm/ApmApplication has been compiled by a more recent version of the Java Runtime (class file version 60.0),this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.classLoader.defineClass1(Native Method)
        at java.lang.classLoader.defineClass(UnkNown Source)
        at java.security.SecureClassLoader.defineClass(UnkNown Source)
        at java.net.urlclassloader.defineClass(UnkNown Source)
        at java.net.urlclassloader.access$100(UnkNown Source)
        at java.net.urlclassloader$1.run(UnkNown Source)
        at java.net.urlclassloader$1.run(UnkNown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.urlclassloader.findClass(UnkNown Source)
        at java.lang.classLoader.loadClass(UnkNown Source)
        at org.springframework.boot.loader.Launchedurlclassloader.loadClass(Launchedurlclassloader.java:151)
        at java.lang.classLoader.loadClass(UnkNown Source)
        at java.lang.class.forName0(Native Method)
        at java.lang.class.forName(UnkNown Source)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)

解决方法

该错误意味着 com/cgny/apm/ApmApplication 是用 Java 16 编译的,因此不能用于 Java 8。

,

编译好的 jar 很好,我刚刚安装了 java 8,它以某种方式覆盖了 JAVA_HOME 和 Path 变量。 java -version 现在显示 16 而不是 1.8。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。