linux java jar打包_java项目打包成jar编写启动文件在linux和windows下运行

参考:https://blog.csdn.net/u011752272/article/details/78560715

注:本篇和原文略有不同

1程序的目录结构

5a1602fa41ec

目录结构

1.1 jdk使用1.8

1.2 src目录下存放类文件和log4j的配置文件

1.3 lib目录存放jar包

1.4 log目录存放日志文件

2程序测试通过后可进行打包,具体步骤为:

2.1选中项目名,右键(Export)导出,选择java——> JAR file,如图:

5a1602fa41ec

选择好导出文件

2.2Next下一步:

2.2.1 左侧.settings不用勾选,右侧.classpath和.project不用勾选

2.2.2 选择jar包要导出的目录

5a1602fa41ec

2.3 Next下一步:

这一步不需要动

5a1602fa41ec

2.4 选择程序main方法所在的类文件:

2.4.1选择项目中 程序运行的 main方法所在的类文件,点击browse,在弹出框中就可以看到,点击OK即可,在点击Finish完成。

5a1602fa41ec

2.4.2如果点击Finish时弹出 如图警告提示,表示程序中不被建议(或已弃用)的语法,或者有编译错误,如果已经测试过,没有影响,则不用理会,点击ok就行了。

5a1602fa41ec

2.4.3查看jar,在步骤 2.2.2中保存的路径下找到  生成的jar查看,如图:

5a1602fa41ec

3JAR 文件正常导出后,右键选择打开方式选择 使用解压软件打开,并解压到JAR所在目录下(同级),如图:

3.1解压jar

5a1602fa41ec

3.2解压的目录结构

5a1602fa41ec

4配置 MANIFEST.MF 文件

4.1打开META-INF 文件夹下的MANIFEST.MF 文件,如果项目中有外部 jar架包引用,需要在此文件中添加引用配置,如果没有则忽略该步骤即可,由于我在本项目中 添加了 log4j 日志jar包,所以添加配置如下:

Main-Class: 就是main() 方法所在的类的.class文件的路径,按照上诉步骤自动生成的MANIFEST.MF,我们已经选择了,所以不用管。

添加  Class-Path:      后面跟上一个空格,然后写你引用的jar包名称,最后回车一行,如我的 log4j-1.2.17.jar  放在了根目录下的 lib文件夹下(注意自己的路径),保存即可

5a1602fa41ec

4.2将修改过的    MANIFEST.MF 文件复制,替换掉JAR包里META-INF 下的MANIFEST.MF 文件,如果没有对该文件做修改,则忽略该步骤即可。

5a1602fa41ec

5编写 start.bat 运行文件

5.1在该目录下新建一个记事本,内容如下:

java -Xmx1G -Xms1G -jar LinuxTcpTest01.jar

pause

含义:设置程序运行最大最小内存,指定程序运行JAR包就是我们刚刚导出的那个jar包名称,如我的是 LinuxTcpTest01.jar

如图:

5a1602fa41ec

保存记事本,并重命名文件为  start.bat    ,注意修改文件后缀,有些计算机的文件后缀是被隐藏的注意设置一下 后缀为   .bat

如图:

5a1602fa41ec

5.2双击启动start.bat即可,如图看到程序正常运行,日志输出和在eclipse中一样,代表打包完成。

5a1602fa41ec

6Linux下  start.sh 启动文件编写

6.1如果需要程序在linux系统下也能正常运行,可编写start.sh 启动脚本,步骤如下:

在该  该目录下新建一个记事本,内容如下:

#!/bin/bash

APP_HOME=/home/node1/Desktop/rmFile #项目文件存放路径

APP_CLASSPATH=$APP_HOME/lib #项目架包路径

jarList=$(ls $APP_CLASSPATH|grep jar) #获取所有架包

echo $jarList #遍历引用架包

for i in $jarList

do

APP_CLASSPATH="$APP_CLASSPATH/$i":

done

echo $APP_CLASSPATH

export CLASSPATH=$CLASSPATH:$APP_CLASSPATH

echo $CLASSPATH

java -Xms50m -Xmx250m com.trs.file.util.TimeTask #设置运行内存 和项目运行的mian类

echo Linux Test End

exit

将#号注释部分根据情况替换成自己实际路径即可,保存并重命名该文件为  start.sh

启动 start.sh (在文件目录位置输入./start.sh)

5a1602fa41ec

注意:

1. linux上必须要有java环境

2.启动文件所在目录必须要有权限,否则启动时提示Permission denied;

解决方法:在该目录下执行 chmod u+x *.sh

3.如果报错:-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

主要原因是start.sh是我在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

我们可以通过vi编辑器来查看文件的format格式。步骤如下:

1.首先用vi命令打开文件

2.在vi命令模式中使用 :set ff 命令,可查看文件格式

3.修改文件format为unix

方法一:使用vi修改文件format

命令:set ff=unix

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值