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等到编译完 ...
随机推荐
- 20145339顿珠达杰 《网络对抗技术》 逆向与Bof基础
目的 通过一些方法,使能够运行本不该被运行的代码部分,或得到shell的使用: 将正常运行代码部分某处call后的目标地址,修改为另一部分我们希望执行.却本不应该执行的代码部分首地址(这需要我们有一定 ...
- CEF3开发者系列之CefEnableHighDPISupport详解
在CEF3中,CefEnableHighDPISupport()这个接口函数在使用时一般不为人所注意,但是如果稍有不慎,会造成打开的网页不能填满窗口的问题.如果是需要flash插件才能运行的游戏.则会 ...
- MyBatis使用小案例
首先回顾一下MyBatis封装简化Dao层连接数据库操作的顺序. 首先MyBatis是一个引入的jar包,还有一些依赖包,可能用不到的jar包,一并引入就好了,再多引入一个Juntil.jar测试包( ...
- Python学习札记(三十六) 面向对象编程 Object Oriented Program 7 __slots__
参考:slots NOTE 1.动态语言灵活绑定属性及方法. #!/usr/bin/env python3 class MyClass(object): def __init__(self): pas ...
- Mininet实验 设置带宽之简单性能测试
原文:设置带宽之简单性能测试 这个实验主要还是说明通过python程序来设定Mininet中的链路带宽. 目的: Python脚本实现自定义拓扑 设置链路的带宽.延迟及丢包率 iperf测试主机间的带 ...
- django网站
https://www.djangoproject.com/download/ 指定版本安装django命令:pip install Django==1.11.8
- vscode的keybindings.json 和 AHK 脚本映射Win键
vscodehotkey.ahk https://github.com/m2nlight/AHKVSCodeLikeMac ; Shortcuts like mac ; Written by Bob ...
- 51nod-1420-贪心
1420 数袋鼠好有趣 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 有n只袋鼠.每只袋鼠的大小用一个整数表示 ...
- Office 365 开发 集成VS2013 (一)
博客地址 http://blog.csdn.net/foxdave 题外话:好久不写了,个人比较懒,有时候想写东西的时候想一想就又不知从何下笔了.之前因为某些机缘发现自己完全是个管理外行,所以最近下了 ...
- react native 获取 软键盘高度 和 新增软键盘的组件
import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, Keyboard, Te ...