继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

打包 java 项目到 linux 执行

锐玩道
关注TA
已关注
手记 70
粉丝 154
获赞 1426

打包 java 项目到 linux 执行

故事的开始

由于 spark 的部署环境在服务器 (docker 部署) 上面, 所以导致网络映射特别复杂. 导致本地开发直连线上只能略过; 如果能本地机器也部署一套 spark + hadoop 还好, 可惜机器配置性能辣鸡, 部署完之后 磁盘io 满了(这是个悲伤的故事).

为什么我的眼中总是饱含热泪, 因为自己挖的坑 – 含着泪也要坚强. 如果能重来, 我会选李白(直接在服务器装); 而现在只能打 jar 包上机器测试.

环境:

  • 本地开发 window 10
  • 服务器 Centos 7
  • jdk 版本 1.8
  • 打包工具 maven

项目打包

由于每一次打 jar 包, 如果直接执行 mvn package 就会在前一次基础上再次打包; 所以个人习惯 清除(mvn clean) 之后再打包 (mvn package)

# 清除
D:\Dev\workplace\java\spark_tag> mvn clean
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.228 s
[INFO] Finished at: 2021-08-04T21:09:54+08:00
[INFO] ------------------------------------------------------------------------

# 打包
D:\Dev\workplace\java\spark_tag>mvn package
[INFO] Scanning for projects...
[INFO] --- maven-jar-plugin:3.1.0:jar (default-jar) @ spark_tag ---
[INFO] Building jar: D:\Dev\workplace\java\spark_tag\target\spark_tag-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.723 s
[INFO] Finished at: 2021-08-04T21:12:35+08:00
[INFO] ------------------------------------------------------------------------

打包完成过后, 你就可以在 上面 Building jar 路径下得到项目 jar 包. rz 上传至 Centos 服务器即可执行

# 语法 java -cp 包地址 程序路径 参数 
java -cp spark_tag-1.0-SNAPSHOT.jar com.sparktag.etl.HotWordEtl

执行时, 我曾遇到问题

问题: Error: Could not find or load main class

Linux下执行jar包提示错误: 找不到或无法加载主类

可能的解决办法 一:

将当前目录加入系统变量 CLASSPATHlinux 系统 才能找到当前目录下的 Java 类, vi /etc/profile ,按照将 jar 包的目录 加到 PATH中,保存后退出 source /etc/profile 让文件生效。

$ vi /etc/profile

# 配置文件
# /etc/profile

#set java environment
JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH

# 程序执行目录
export PATH=$PATH:/work/apps/spark-es-tag

# 重新加载, 让配置生效
$ source /etc/profile

# 验证配置
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin:/work/apps/spark-es-tag:/usr/local/sbin:/usr/sbin:/work/servers/php/bin:/home/work/.local/bin:/home/work/bin:/work/servers/python/python3.7/bin

可能的解决办法 二:

在原 清除之后再打包 过程中, 加入 mvn compile (编译) 查看编译过程是否出现报错. 确认无误之后再打包上传

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP