zoukankan      html  css  js  c++  java
  • 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     //杀掉进程
    
  • 相关阅读:
    RMAN备份脚本执行遇到RMAN-03002,06091问题处理
    物化视图日志过大,手工清理
    大表添加一个字段需求
    oracle_job进程相关学习测试
    11.2.0.4单实例静默安装
    RMAN执行crosscheck archive报错ORA-19633问题处理
    df执行hang住
    应用人员反馈报错,ORA-03137: TTC protocol internal error : [12333]
    普通表分区改造_rename方式
    SQL查询oracle数据库最近备份情况
  • 原文地址:https://www.cnblogs.com/xiaozhengtongxue/p/13474627.html
Copyright © 2011-2022 走看看