网上打包的教程很多, 但是自己动手总归出现各种各样的问题,自己总结下:

由于刚刚接触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项目打包部署的更多相关文章

  1. Java项目打包部署war文件

    1.选中要打包的项目,右键单击,选择“Export-->WAR File”,在弹出的对话框中选择Destination.Server runtime等选项,点击Finish: 2.可以看到指定目 ...

  2. Java学习之道:Java项目打包发布

    Java项目打包发布 如果只想发布为一个可执行的jar包,使用eclipse的Export功能就可以了 使用eclipse的Export功能,将项目中的所有package打包为一个pet.jar文件, ...

  3. Java项目打包发布

    Java项目打包发布 如果只想发布为一个可执行的jar包,使用eclipse的Export功能就可以了 使用eclipse的Export功能,将项目中的所有package打包为一个pet.jar文件, ...

  4. Java项目打包在CMD或者Linux下运行

    Java项目打包在CMD或者Linux下运行 1.在CMD下运行 在eclipse中将项目export成jar包,然后用压缩软件解压

  5. java项目打包成可运行的jar,main方法带参数

    转载 原文地址:http://www.cnblogs.com/neillee/p/6063808.html#commentform 将 java 项目打包成可运行的 jar 包(main 函数带参数) ...

  6. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十四):项目打包部署

    项目打包部署 安装MySQL镜像 注意:如果使用docker镜像安装MySQL,也需要在前端部署主机安装MySQL,因为备份还原功能是使用MySQL的本地命令进行操作的. 下载镜像 执行以下命令,拉取 ...

  7. Java项目打包成exe的详细教程

    Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步: 1. 利用Eclipse先把Java项目先打成jar包 2. 利用exe4j工具把jar包转成exe 这里以Java项目 ...

  8. Maven将java项目打包生成可运行jar

    Maven将java项目打包生成可运行jar Maven插件配置 <plugins> <plugin> <groupId>org.apache.maven.plug ...

  9. 将Java项目打包成可以独立运行的Jar包

    因为一直也没怎么用过Java的原因,所以以前本科上课的时候,在控制台下运行Java程序都是仅仅运行单个的没有第三方库依赖的情况下运行的 那种情况特别简单,只要输入Javac 文件名.java等到编译完 ...

随机推荐

  1. git如何在自动生成补丁时指定补丁名的起始编号

    答:使用选项--start-number,用法如下: git format-patch 1f43be --start-number=2 这样就可以生成起始编号为2的补丁名,类似0002-me.patc ...

  2. 采用注解方式实现security

    采用注解方式使用security,首先我们需要用注解方式实现Spring MVC,新建一个Maven项目 本项目目录结构如下:  我们会发现在WEB-INF中没有web.xml文件,下面会介绍,采用j ...

  3. zoj 3747 递推dp

    Attack on Titans Time Limit: 2 Seconds      Memory Limit: 65536 KB Over centuries ago, mankind faced ...

  4. HDU 3820 Golden Eggs

    http://acm.hdu.edu.cn/showproblem.php?pid=3820 题意:n*m的格子,每个格子放金蛋或银蛋,每个格子的金蛋和银蛋都有一个对应的点权,如果有两个金蛋相连,则需 ...

  5. python有木有哪些必须要学习的高级模块

    python有木有哪些必须要学习的高级模块 字母表

  6. Notepad++ 管理工程--转载

    http://blog.csdn.net/cashey1991/article/details/7001385 @1.首先从下面这个菜单打开工程panel @2.在工程panel的“Workspace ...

  7. Decorator(装饰)

    意图: 动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator 模式相比生成子类更为灵活. 适用性: 在不影响其他对象的情况下,以动态.透明的方式给单个对象添加职责. 处理那些可以撤消 ...

  8. ACM比赛学习指导(20180223)

    0.比赛介绍 (1)浙江省大学生程序设计比赛,3人一组,题目为英文 (2)ACM程序设计比赛 百度百科介绍 1.理论学习 (1)<挑战程序设计竞赛>,秋叶拓哉,巫泽俊 (2)<算法竞 ...

  9. hdu4990矩阵快速幂

    就是优化一段代码,用矩阵快速幂(刚开始想到了转移矩阵以为是错的) 在搜题解时发现了一个神奇的网站:http://oeis.org/ 用来找数列规律 的神器.... 规律就是an=an-1+2*an-2 ...

  10. Linux CentOS7.0下JAVA安装和配置环境变量

    一.前言: CentOS7.0虽然自带JDK1.7和1.8,运行“java -version”命令也可以看到版本信息,但是jdk的安装环境不全,比如缺少tool.jar和dt.jar等,这就导致“ja ...