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

前言:新建了一个java项目,现在需要将该项目打包成一个可运行的程序,并且编写start.bat和start.sh在windows下和Linux下都可运行,项目主要是一个根据文件日期自动创建层级目录文件夹(文件夹根据日期命名),然后将文件移动到文件夹里。


准备:确保windows和Linux下都安装了jdk且配置了环境变量


1、项目的目录结构如如下图:

     java项目打包成jar编写启动文件在windows和Linux下运行_第1张图片

   

   1.1   src  下 有  com.trs.file.util包和 log4j..properties 日志配置文件,com.trs.file.util 包存放具体java类

   1.2   JRE System Library  为java项目JRE引用,项目使用的是jdk1.8.0

   1.3   lib   log4j-1.2.17.jar架包引用

   1.4  logs   存放 日志文件的文件夹

   1.5   根目录下的项目 config.properties 配置文件




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

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


         java项目打包成jar编写启动文件在windows和Linux下运行_第2张图片


   2.2,Next下一步,如图:

    2.2.1 将  项目结构中 .settings 不用勾选,右侧 .classpath 和 .project 不用勾选,其余目录结构完整保留即可,(网上很多粘贴复制党说只保留 src下文件,后面能坑死人)


      2.2.2  选择 JAR file 要导出的路径,自己选择一下导出要存放的路径即可。


   java项目打包成jar编写启动文件在windows和Linux下运行_第3张图片


3、Next 下一步,如图:


         3.1 什么也不用动,直接 next下一步


    java项目打包成jar编写启动文件在windows和Linux下运行_第4张图片


4、选择程序运行main方法类文件

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

     java项目打包成jar编写启动文件在windows和Linux下运行_第5张图片

    

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


    java项目打包成jar编写启动文件在windows和Linux下运行_第6张图片

 

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


         java项目打包成jar编写启动文件在windows和Linux下运行_第7张图片

     

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

 

         5.1,解压JAR 方式如图:

java项目打包成jar编写启动文件在windows和Linux下运行_第8张图片

      

     5.2 解压后目录结构如图:

            java项目打包成jar编写启动文件在windows和Linux下运行_第9张图片



6、配置 MANIFEST.MF 文件

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


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


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

    

      java项目打包成jar编写启动文件在windows和Linux下运行_第10张图片


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


       java项目打包成jar编写启动文件在windows和Linux下运行_第11张图片


7、编写 start.bat 运行文件

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

  

        java -Xmx1G -Xms1G -jar rmFileTask.jar
        pause

       

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

  如图:

        java项目打包成jar编写启动文件在windows和Linux下运行_第12张图片

      

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

      最后目录结构如下:


      java项目打包成jar编写启动文件在windows和Linux下运行_第13张图片


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


          java项目打包成jar编写启动文件在windows和Linux下运行_第14张图片

      



9、Linux下  start.sh 启动文件编写

     9.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 

    如果报错: 

  1. -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命令打开文件

Shell代码   收藏代码
  1. [root@localhost test]# vi start.sh   

2.在vi命令模式中使用 :set ff 命令

可以看到改文件的格式为dos

3.修改文件format为unix

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

命令:set ff=unix



    

   


   最后再次启动 start.sh  可以看到成功运行如图:

   

    java项目打包成jar编写启动文件在windows和Linux下运行_第15张图片




附:  完成后的可运行程序压缩包可点击下载 :  rmFileTask.rar



你可能感兴趣的:(java)