windows下的java项目打jar分别编写在windows与linux下运行的脚本( 本人亲测可用!)
前言:
最近公司做了一个工具,要将这个工具打包成一个可运行的程序,编写start.bat和start.sh在windows和linux下都可以运行。
在网上找了很多资料,最后终于找到一个可靠的资料,记录下来,分享给大家,也算是自己的一个总结。
吃水不忘挖井人,感谢这位老哥的文章:https://blog.csdn.net/u011752272/article/details/78560715
不多bb直接开始干活!
一、项目的结构
由于只是测试,里面的东西不复杂,可以用很简单来说明,创建的是maven项目,当然普通的java项目也是可以的。

二、在本地跑通确认无误后打成jar放到本地,具体步骤为:
2.1在桌面创建一个名为zztest的文件夹。
右击项目-->Export-->Java-->JAR file后点击next,如下图:

2.2 .settings .classpath .project 这三个文件不要勾选,千万不要勾选!
选择生成jar包的路径为2.1创建的zztest目录后点击next,如下图:

2.3什么都不用动,继续点击next,如下图:

2.4点击Browse...设置main方法运行的主类后点击ok后点击finish,如下图:
如果有警告的话也不用理,直接确定即可!

三、查看jar
在zztest中已经存在名为test01.jar的jar包,如下图:

四、解压(如果项目中有外部jar的引用需要在此添加配置,如果没有请直接忽略掉这一步进入第六步!!!)
右击直接解压这个test01.jar到当前文件夹,如下图:

五、配置MANIFEST.MF文件(如果项目中有外部jar的引用需要在此添加配置,如果没有请直接忽略掉这一步进入第六步!!!)
5.1
打开META-INF下的MANIFEST.MF文件
Class-path后面有一个空格请注意,空格后面紧跟jar包的路径,其中lib目录与src目录同级
如下图:

如果有由于本文没有测试引用多个jar的情况,所以要引用多个jar请尝试:
Class-path: lib/test01.jar lib/test02.jar
5.2将修改过的MANIFEST.MF替换掉jar包里面META-INF下的MANIFEST.MF
六、windows下——编写start.bat脚本
在zztest目录下创建一个文本文件,在里面增加一段代码,后保存,名字为start.bat后保存,确定保存,如下图:

最终的文件结构如下图(如果项目中没有引用外部的jar,没有执行第四步,第五步,只会有一个test01.jar与start.bat):

双击start.bat就可以运行,结果如下图。至此windows下的就已经结束!

七、linux下——Linux下的start.sh启动脚本编写
本文使用的是SecureCRT与SecureFX操作linux终端
7.1操作SecureSecureFX将jar放入指定文件夹如下图:

7.2输入unzip test01.jar将jar解压(一定要解压,才能够运行,我也不知道解压的原理......),如下图:

7.3在SecureCRT命令行中创建一个start.sh脚本并在里面指定执行main方法所在的java类
vi start.sh 注释:创建一个名字为start.sh的脚本,结果如下图:

按"i"进入编辑模式编辑文件如下图所示:
#!bin/bash
java -Xms50m -Xmx250m com.zhanzhuang.windows_and_linux.WAL
exit

然后按一下esc
之后按住shift后加:
可以松手了,输入wq点击回车即可
------------------------------------------------------------------------------
光标就变成如下图所示

7.4 sh start.sh执行脚本结果如下图所示

至此,linux下的步骤也讲解完毕。感谢各位小伙伴收看!
如果在linux下运行的工程里面有引用的外部jar包则start.sh脚本内容如下

windows下的java项目打jar分别编写在windows与linux下运行的脚本( 本人亲测可用!)的更多相关文章
- windows下面的java项目打成jar放到XShell终端上面进行远程调试
前言: java项目打成jar放到linux上面运行,但是linux上面没有eclipse不能进行debug,所以要在windows的eclipse中进行远程调试. 需要注意的是!!!-->在e ...
- windows一键部署java项目
windows一键部署java项目 因为公司需求,要在windows的环境上做一键部署启动java项目,同时还要支持从安装界面动态修改配置文件的IP地址.就像安装软件一样将jdk,tomcat,mys ...
- java项目打jar包的两种情况
链接地址:http://jingyan.baidu.com/article/6b97984d8a6ddc1ca2b0bfa0.html 本文介绍一下java项目打jar包时的两种情况各怎么操作 方 ...
- paip.批处理清理java项目冗余jar的方法
paip.批处理清理java项目冗余jar的方法 在myeclipse中开发的java项目遇到jar包冗余情况,如何删除项目中的冗余jar包啊?项目很大jar包一百多个. 2010-09-14 14: ...
- java 项目得到jar和classes路径
java 项目得到jar和classes路径 public static String getJarPath(Class clazz) { String path = clazz.getProtect ...
- Eclipse将Java项目打成jar工具包
jar包:就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法. jar包可分为可执行jar包和jar工具包,在这里, ...
- 亲测可用!在线购书系统项目分享(Java)
项目简介 项目来源于:https://gitee.com/suimz_admin/BookShop 一个基于JSP+Servlet+Jdbc的书店系统.涉及技术少,易于理解,适合JavaWeb初学者学 ...
- 平衡二叉树 JAVA实现 亲测可用
平衡二叉树的JAVA实现 亲测可用 包括LL LR RL RR四种情况的旋转算法 以及添加删除树结点之后对平衡二叉树的维护算法 都已经实现并测试过 没有问题. 代码地址可以直接上我的GIT clone ...
- windows下载的java项目部署到linux的各种解决方案
1.Java是跨平台的,在linux下有问题,主要一是文件读取权限:二检查下系统环境变量设置可正确!.profile JavaWeb_将Windows平台上开发的JavaWeb项目部署到Linux平台 ...
随机推荐
- Codeforces Round #243 (Div. 2)——Sereja and Swaps
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012476429/article/details/24665103 题目链接 题意: 给定一个整数 ...
- MQ的不足
调用方实时依赖执行结果的业务场景,请使用调用,而不是MQ.MQ是互联网分层架构中的解耦利器,那所有通讯都使用MQ岂不是很好?这是一个严重的误区,调用与被调用的关系,是无法被MQ取代的.比如用户登录场景 ...
- bzoj 4650(洛谷 1117) [Noi2016]优秀的拆分——枚举长度的关键点+后缀数组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4650 https://www.luogu.org/problemnew/show/P1117 ...
- POJ1742Coins
题目:http://poj.org/problem?id=1742 可以正常地多重背包.但是看了<算法竞赛入门经典>,收获了贪心的好方法. 因为这里只需知道是否可行,不需更新出最优值之类的 ...
- R(1):中文乱码解决方案
读取csv文件出现中文乱码方案,增加编码格式参数 read.csv(trainPath,header=TRUE,stringsAsFactors=TRUE,encoding = "UTF-8 ...
- 实验 1 Java 运行环境的安装、配置与运行
一.实验目的 1. 掌握下载 Java SDK 软件包. 2. 掌握设置 Java 程序运行环境的方法. 3. 掌握编写与运行 Java 程序的方法. 4. 了解 Ja ...
- msql主从复制
Mysql数据库主从复制原理: 主库开启bin-log日志,同时生成IO线程.IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行:生成标识号 server i ...
- vue 之radio绑定v-model
示例: 单选radio <label ><input type="radio" value="0" v-model="branch& ...
- Java技术专题之JVM逻辑内存回收机制研究图解版
一.引言 JVM虚拟机内存回收机曾迷惑了不少人,文本从JVM实现机制的角度揭示JVM内存回收的原理和机制. 一.Java平台逻辑架构 二.JVM物理结构 通过从JVM物理结构图我们可以看到: 1.JV ...
- 蓝桥杯 算法训练 ALGO-116 最大的算式
算法训练 最大的算式 时间限制:1.0s 内存限制:256.0MB 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量 ...