1 普通 jar 包:导出的包是用来被其他包引用的,一般类里面不含有 main 方法。

1.1 首先在Eclipse中打开项目, 右键点击项目,选择“Export”;

1.2 选择Java/JAR file,Next;

1.3 Select the resources to export:选择你【想要包含的项目文件夹】,一些不必要的文件夹就无需放进去了,免得增大空间

导出选项说明:

1.3.1 Export generated class files and resources:表示只导出生成的【.class文件和其他资源文件】。

1.3.2 Export all output folders for checked projects:表示导出项目中被【选中的所有文件夹】。

1.3.3 Export java source file and resouces:表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了。

1.3.4 Export refactorings for checked projects 把一些重构的信息文件也包含进去

在Select the export destination中选择导出的jar的路径 。然后点击【Next】

1.4 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next

1.5 下一个页面里可以对项目做一些配置。(如果项目没有引入第三方jar包,这项我们采用系统默认的选项就OK,Main class 一定要设置成为你项目的那个【主方法入口类】)

* Generate the manifest file:是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。

* Use existing mainfest from workspace:这是可以选择我们自定义的.MF文件,格式如上所写。

* Seal content:要封装整个jar或者指定的包packet

* Main class:这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。

最后Finish,搞定。

2.可运行 jar 包:导出的jar 包是用来【直接运行的】

1.1 首先在Eclipse中打开项目, 右键点击项目,选择“Export”;

1.2 选择Java/Runnable JAR file,Next;

1.3 Launch configuration:指定被导出的项目,命名方式 MainClass-projectName,MainClass 指的是被导出的项目中带有 main 方法的 className,后面的是项目的名称。

1.4 Export destination:导出的目标路径

1.5 library handling:jar 包的处理方式

导出选项解析:

1.5.1 Extract required libraries into generated JAR:把引用到的 jar 跟当前项目的 jar 包打包到一起。

1.5.2 Package required libraries into generated JAR:把引用到的 jar 放入到一个文件夹中,然后跟当前项目的 .class 文件打包到一起。

1.5.3 Copy required libraries into a sub-folder next to the generated JAR:把引用到的 jar 包单独的放入到一个文件夹中,然后跟当前项目的 jar 包并列的存放。

1.6 对 1.5 中打包方式的利弊分析:

1.5.1 的打包方式把当前的项目导出为一个 jar 文件,source 目录下编译之后的文件都打包到一起,这种方式便于携带,缺点是这种方式把自己的文件以及引用到的 jar 包都混合起来了。

1.5.2 这种方式也是只有一个 jar 文件输出,但是它会把当前用到的 jar 包给放入到一个统一的目录下,比第一种方式要容易区分到底哪些是自己的东西,哪些是引用的东西。

1.5.3 这种方式输出一个 jar 文件,一个包含了所有引用到的 jar 包的文件夹,这种方式输出的文件数多,但是它有一个好处就是如果你处于开发阶段的话,那么当你要把自己的工程在远程的机器上执行的时候,它就会变得方便了,因为这个时候,当你更新了项目的时候,你只需要上传自己修改该后的项目 jar,而不需要把引用的 jar 包也同时上传一遍,当然前提是你引用的 jar 包没有变化。

3 注意:

如果你的项目中除了源文件之外还用到了其他文件,比如你的项目里面用到了 phantomjs 这个工具,它本身跟 java 没什么关系,你之所以把它放进来是因为,你希望自己可以随时在其他没有 phantomjs 环境中使用它,而不需要在他配置很多东西,这个工具它既不是 class 文件,也不是 资源文件,而是一个二进制的可执行文件,这个时候你不应该把它放入到源文件中,你应该把它放入到一个文件夹中,而且在把项目打包时它不会被打包进去,你应该够把它单独的复制出来进行使用。

4.可运行 jar 包的分析:

可运行的 jar 跟普通 jar 包的区别在于可运行的 jar 包中的 META-INF 文件夹中的 MANIFEST.MF 文件中定义了 Main-Class: com.vaolan.controller.Driver 这个选项,所以在 执行 java -jar xxx.jar 的时候命令会根据这个 Main-class 参数去调用相应的 main 方法。

小技巧:有时候你会发现尽管自己的 项目中有了 main 方法,但是在导出的时候却找不到自己要导出的那个项目,这是因为你带有 main 方法的 java 文件没有运行过,所以 eclipse 没有记录下来,所以就无法自动的推荐你导出它,这个时候你需要运行一下那个带有 main 方法的类,然后再选择导出 jar 文件,这个时候你就可以找到你要导出的那个文件了。

java project保存_java project 导出介绍相关推荐

  1. java properties 保存_Java 读写Properties配置文件

    转自:https://www.cnblogs.com/xudong-bupt/p/3758136.html 1.Properties类与Properties配置文件 Properties类继承自Has ...

  2. java记事本保存_JAVA记事本关于保存

    为什么运行这个程序后点击保存,然后打开时不是按行输出的啊?哪里有问题?publicclassJSBJSB{publicstaticvoidmain(String[]args){FirstWindoww ...

  3. java 字符串 面试_JAVA中String介绍及常见面试题小结

    字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 深刻认识String 1)String为字符串常量:即String对象一旦 ...

  4. java 线程百科_Java并发——线程介绍

    前言: 互联网时代已经发展到了现在.从以前只考虑小流量到现在不得不去考虑高并发的问题.扯到了高并发的问题就要扯到线程的问题.你是否问过自己,你真正了解线程吗?还是你只知道一些其他博客里写的使用方法.下 ...

  5. java future接口_java Future 接口介绍

    在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现. Future接口是Java标准API的一部分,在java.uti ...

  6. java linkedlist用法_Java linkedList详细介绍及使用示例

    ①LinkedList简单介绍 是一个继承于AbstractSequentialList的双向链表.它可以被当成堆栈.队列或双端队列进行操作. 实现了List接口,能对它进行队列操作. 实现了Dequ ...

  7. Java服务提供_JAVA 服务提供者框架介绍

    服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来.服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性.例如,JDBC,JMS等就是用 ...

  8. java开发简介_Java Web开发介绍

    转自:http://www.cnblogs.com/pythontesting/p/4963021.html 简介 Java很好地支持web开发,在桌面上Eclipse RCP谈不上成功,JAVA是主 ...

  9. java 大数类_Java大数类介绍

    java能处理大数的类有两个高精度大整数BigInteger和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.B ...

最新文章

  1. 搭建B2B2C多用户商城系统需要注意的事项
  2. 关于Log 的一些东西
  3. 【Python】@property的用法
  4. C++题解-Leecode 375. 猜数字大小 II——Leecode每日一题系列
  5. java猜拳游戏代码_Java实现简单猜拳游戏
  6. linux IP、端口连通性测试
  7. 【QGIS入门实战精品教程】5.1:QGIS地理坐标转火星坐标系(GCJ02)案例教程
  8. 【WebRTC---进阶篇】(六)SELECT网络模型
  9. android中activity布局,Activity布局初步(一)
  10. 湖北大学计算机复试笔试题型,2016年湖北大学计算机与信息工程学院计算机组成原理复试笔试最后押题五套卷...
  11. Html中解决点击 a 标签刷新的问题,实现点击时不刷新
  12. 适用与IOS手机的python编辑器,让你不限空间,地点都能玩转pyhton代码 !...
  13. Webservice工具soapUI下载和使用
  14. Java 网络编程之Socket详解
  15. WEB安全基础 - - -弱口令和暴力破解
  16. 浅谈数据与网络安全--对网络安全的基础知识了解
  17. java jtable 单元格合并_JTable单元格合并AAA
  18. 天泉证道四句教与价值观
  19. 热血传奇之资源文件与地图的读取分析
  20. 牛叔说电影-社会底层是怎样炼成的

热门文章

  1. Pytorch学习笔记总结
  2. 大数据分析四大分析要素
  3. 数据安全的四个新挑战有哪些
  4. 物联网卡不实名认证有什么风险
  5. utf—8在苹果手机上乱码_UTF-8中文乱码怎么去解决
  6. 区块链浏览器_带你走进Filecoin区块链浏览器filscout.io
  7. vba遍历字符串_操蛋的VBA程序错误!
  8. SparkStreaming安全消费Kafka数据
  9. Shell脚本编程之(七)Shell脚本的追踪与debug
  10. [深度学习] loss不下降的解决方法