V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tiRolin
V2EX  ›  Java

本地能启动,但是部署到服务器上报 LinkageError 这个问题该怎么解决?

  •  
  •   tiRolin · 3 小时 39 分钟前 · 138 次点击

    我做了一个项目,这个项目在我的本地可以正常启动和编译,但是在服务器上不行

    服务器上只要一启动,就报

    错误: 加载主类 org.springframework.boot.loader.launch.JarLauncher 时出现 LinkageError
            java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/launch/JarLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the JavaRuntime only recognizes class file versions up to 55.0
    

    看解决方案都是说 Java 的版本不对,可是我的 java 版本明明是对的

    首先我使用的是 JDK21 ,我在 idea 中确保了一下内容是 JDK21

    本地使用的 JDK 也是 21

    服务器的 jdk 也是 21

    感觉一点问题都没有,然而只要部署到服务器,就会报上面的问题,给我整不会了

    另外下面是我的 pom 配置文件

    <?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>3.4.2</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <packaging>jar</packaging>
    
        <groupId>com.example.oa</groupId>
        <artifactId>example_server</artifactId>
    
        <properties>
            <java.version>21</java.version>
            <maven.compiler.source>21</maven.compiler.source>
            <maven.compiler.target>21</maven.compiler.target>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.33</version> <!-- 根据需要选择版本 -->
            </dependency>
    
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
                <version>4.1.0</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--  Lombok  -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.30</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
                <version>3.5.7</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    
    

    我远程部署使用的命令是

    sudo nohup java -jar msp_oa_server-3.4.2.jar > /home/server/msp_oa_server.log 2>&1 &
    

    对于这个问题,我无论是问 AI 还是去搜索引擎查找,都没有找到好的解决方案,他们大多是在重复说是 java 版本不对,然而我怎么看都感觉是对的,实在没办法,来求助各位大佬了,希望有懂得能救一下

    3 条回复    2025-02-25 00:04:19 +08:00
    zacharyjia
        1
    zacharyjia  
       3 小时 37 分钟前
    你运行一下 sudo java -version 试试,是不是你的普通用户和 root 用户的 path 配置不一样,使用了不同的 java 版本?
    sujin190
        2
    sujin190  
       3 小时 32 分钟前 via Android
    本地和服务器子版本号差了好几个了吧,要不本地降个版本编译下试试?
    zacharyjia
        3
    zacharyjia  
       3 小时 25 分钟前
    @sujin190 不至于,他报错显示 class 文件版本号 61 ,应该是 target version 到 java 17 ,但是 runtime 支持的最高版本号是 55 ,对应 java 11 ,肯定是服务器上运行的时候用成了 jdk11
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1058 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:29 · PVG 03:29 · LAX 11:29 · JFK 14:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.