打包 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包提示错误: 找不到或无法加载主类
可能的解决办法 一:
将当前目录加入系统变量 CLASSPATH
,linux 系统
才能找到当前目录下的 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 (编译)
查看编译过程是否出现报错. 确认无误之后再打包上传
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦