java项目打包部署
网上打包的教程很多, 但是自己动手总归出现各种各样的问题,自己总结下:
由于刚刚接触JAVA,做了一个简单的java project 项目, 但是包含第三方的jar包, 结果打包的时候就出现问题了。
主要原因是一直报“Exception in thread "main" java.lang.NoClassDefFoundError“的错误, 我一开始以为打包的jar包中应该包含第三方的JAR包,结果死活报错,原来并不是这样,运行jar包时,会根据 MANIFEST.MF中的Class-Path 的路径去读取。
好了,说下打包流程
1. 先看下文档目录和最后打包的效果


可以看到,打包完后,第三方jar并不在程序包内。
2. 配置MANIFEST.MF文件,程序打包时会用到。
2.1 在项目下新健一个文件夹
2.1 在该文件夹下新健一个MANIFEST.MF文件, 配置对应的属性

3. 打包程序, 不包含第三方JAR包
3.1 点击 file > export
3.2 选择 jar file, 点击next
3.3 选择 项目打包文件,录入一个生产jar的路径(只需要项目文件, 不包含第三方jar以及MANIFEST.MF; 同时也不包含.classpath 和.project)

3.4 点击选择已经存在的装配单

3.5 一直到结束
4. 通过java -jar xxx.jar 来运行, 但是这里需要注意要关联第三方Jar包, 怎么关联, 会程序会通过 MANIFEST.MF中的Class-Path去寻找。所以最终要运行jar报的结构如下。

作为刚学JAVA的人会有点小折腾。
参考资料
http://www.open-open.com/lib/view/open1397303218919.html
http://www.cnblogs.com/lanxuezaipiao/p/3291641.html
http://bbs.csdn.net/topics/350163956
java项目打包部署的更多相关文章
- Java项目打包部署war文件
1.选中要打包的项目,右键单击,选择“Export-->WAR File”,在弹出的对话框中选择Destination.Server runtime等选项,点击Finish: 2.可以看到指定目 ...
- Java学习之道:Java项目打包发布
Java项目打包发布 如果只想发布为一个可执行的jar包,使用eclipse的Export功能就可以了 使用eclipse的Export功能,将项目中的所有package打包为一个pet.jar文件, ...
- Java项目打包发布
Java项目打包发布 如果只想发布为一个可执行的jar包,使用eclipse的Export功能就可以了 使用eclipse的Export功能,将项目中的所有package打包为一个pet.jar文件, ...
- Java项目打包在CMD或者Linux下运行
Java项目打包在CMD或者Linux下运行 1.在CMD下运行 在eclipse中将项目export成jar包,然后用压缩软件解压
- java项目打包成可运行的jar,main方法带参数
转载 原文地址:http://www.cnblogs.com/neillee/p/6063808.html#commentform 将 java 项目打包成可运行的 jar 包(main 函数带参数) ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十四):项目打包部署
项目打包部署 安装MySQL镜像 注意:如果使用docker镜像安装MySQL,也需要在前端部署主机安装MySQL,因为备份还原功能是使用MySQL的本地命令进行操作的. 下载镜像 执行以下命令,拉取 ...
- Java项目打包成exe的详细教程
Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步: 1. 利用Eclipse先把Java项目先打成jar包 2. 利用exe4j工具把jar包转成exe 这里以Java项目 ...
- Maven将java项目打包生成可运行jar
Maven将java项目打包生成可运行jar Maven插件配置 <plugins> <plugin> <groupId>org.apache.maven.plug ...
- 将Java项目打包成可以独立运行的Jar包
因为一直也没怎么用过Java的原因,所以以前本科上课的时候,在控制台下运行Java程序都是仅仅运行单个的没有第三方库依赖的情况下运行的 那种情况特别简单,只要输入Javac 文件名.java等到编译完 ...
随机推荐
- Dijkstra算法补分
要求 Dijkstra算法,求解附图顶点A的单源最短路径 在纸上画出求解过程,上传截图(注意图上要有自己的学号和姓名) 过程
- A TLS packet with unexpected length was received 解决方法
参考:A TLS packet with unexpected length was received. 系统环境 主系统 OS X,虚拟机 Ubuntu 14.04 64bit. 问题描述 在git ...
- Windows__书
1.<<Windows 网络与通信程序设计>> (第2版) 2. 3.
- 使用git bush 生成github SSH公钥
1 如果没有安装ssh,那么使用下面的指令 sudo apt-get install ssh 2 检查SSH公钥 cd ~/.ssh 看看存不存在.ssh,如果存在的话,掠过下一步:不存在的请看下一步 ...
- Linux 常用环境搭建
已有环境 python 2.6.6 jdk 1.7 —tomcat— —jenkins— —jq— —Python 2.7— —pip— —PIL— —Android SDK— —yum or apt ...
- Http缓存知识;HTTPS, HTTP2相关知识;百度统计和即时线上客服。
安装 : 百度统计 来统计用户流量, Intercom 来做即时线上客服. 这两个是 JavaScript 插件放在 HTML 上的. HTTP缓存: https://developers.googl ...
- hdu4280网络流之dinic
这题就是个模板题,不过我是第一次写dinic,好久没用链式前向星又不会了... 时间:9126ms #include<map> #include<set> #include&l ...
- ruby on rails Mac 安装
网上的资料有很多,但好多坑,有的已经过期了,有的不符合现整理了一下 貌似有的还跟os系统版本有关系,请勿照搬,根据实际情况安装 我的系统版本是10.12.3 ps:选择一个较好的网络,很多问题有得时候 ...
- mysqli使用记录
1.批量插入数据insert 方式一:insert into tableName (id,name,age) values ('1','张三','12'),('2','李四','16'),('3',' ...
- do-while语句和while的区别
do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件.其实就是,代码在刚开始执行的时候,都是要先走一遍do循环体内的代码,然后在与while里面的条件进行判断,成 ...