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     //杀掉进程
    
  • 相关阅读:
    源码安装extundelete以及对遇到问题的解决
    centos 连不上网
    memcache 永久数据被踢
    svn 分支
    HTML5 中已经可以用 Ajax 上传文件了,而且代码非常简单,借助 FormData 类即可发送文件数据。
    sublime安装DocBlockr注释插件
    rsync 无密码 传输
    滚动条滑到底部,加载更多
    svn 同步脚本
    蒲公英[分块]
  • 原文地址:https://www.cnblogs.com/xiaozhengtongxue/p/13474627.html
Copyright © 2011-2022 走看看