• Linux平台部署maven项目,报异常Exception in thread "main" java.lang.UnsupportedClassVersionError和Web server failed to start. Port 8080 was already in use


    背景

    使用java -jar的方式将maven项目部署到linux平台(虚拟机)下,报出异常Exception in thread "main" java.lang.UnsupportedClassVersionError。

    项目部署过程

    一、项目打包:

    使用如下命令对项目打包:

    D:sell>mvn clean package -Dmaven.test.skip=true
    

    打包成功:
    打包成功
    在pom.xml文件里添加以修改包的名字:

    重新打包,可以看到包名已经被修改:

    二、部署

    使用如下命令将项目部署到linux平台(虚拟机)指定目录/opt/javaapps下:

    scp target/sell.jar root@10.3.11.185:/opt/javaapps
    


    在虚拟机项目目录下启动项目:

    项目报异常:

    三、发现异常

    检查linux平台的java版本:

    检查linux平台的javac版本:

    java版本是一致的,没有问题,然后检查maven项目所要求的java版本,进入pom.xml文件中查看:

    发现maven项目中jdk是11的,而linux平台上是1.8的,两者不匹配才导致上述异常。

    四、解决

    将maven项目中JDK版本改成1.8.如下:

    <properties>
        <java.version>1.8</java.version>
    </properties>
    

    删除掉linux平台下刚才上传的异常文件:

    重新将项目打包上传,然后就可以成功启动了。

    五、后续

    改了JDK版本号重新上传运行,项目报了新的异常,提示8080端口被占用:

    解决
    1. 首先用如下命令查看占用8080端口的进程:
    netstat -lnp|grep 80
    


    然后使用如下命令杀掉占用端口的进程:

    kill -9 1471
    kill -9 970
    

    确认进程是否已被关闭:

    重新启动,可以发现项目启动成功:

    注意:上述命令是linux下的。windows下用以下命令查看占用8080端口的进程和杀掉占用端口的进程:

    netstat -ano|findstr "8080"    //查询
    tskill 3500     //杀掉进程
    
  • 相关阅读:
    第五周学习总结-20175218
    第一周测试总结分析
    第四周学习总结-20175218
    第三周学习总结-20175218
    第二周学习任务-20175218
    第一周学习总结-20175218
    20175213 2018-2019-2 《Java程序设计》第11周学习总结
    数据结构-排序(选做)
    20175213 2018-2019-2 《Java程序设计》第10周学习总结
    2018-2019-2 20175213实验三《敏捷开发与XP实践》实验报告
  • 原文地址:https://www.cnblogs.com/xiaozhengtongxue/p/13474627.html
Copyright © 2020-2023  润新知