可以选择以下几种办法:

一、使用Eclipse,右键项目导出jar。

二、使用Eclipse,右键项目导出runnable jar。

三、使用Eclipse 插件fat jar,导出可执行的jar包。

现在有这样一个开发场景:

第一个项目:A1

第二个项目:B2

第三个项目:U3

几个条件和关系:

 U3引用了第三方库log4j.jar和common-io.jar。
B2引用了项目U3。
A1引用了项目B2。

我想实现这样一个操作:

 U3和第三方库打包成一个jar包【u3.jar】。
u3.jar导入项目B2,打包成一个新的jar包【b2.jar】。
b2.jar导入项目A1,供A1使用。

目的很简单:

导入一个b2.jar即可,而不用导入各种第三方库。

尝试了各种打包方法都失败了。

看起来u3.jar里包含log4j.jar和common-io.jar,然后项目A1提示找不到相关类!

又是几个小时过去了,有点儿沮丧不是吗?

然而这只是一个思路可行性的问题。

看起来jar包都有,但是从A1里加载class的时候是找不到的,因为路径不对。

转念过来讲,以项目依赖的提示单独导入第三方库其实更科学。

来看这样一种情况:

 新项目u4也使用了第三方库log4j-1.0.jar。
U4和第三方库打包成一个jar包【u4.jar】。
u3.jar和u4.jar中的第三方库都能生效。
项目A1同时导入了u3.jar和u4.jar,看起来,冲突的场景出现了呢。

就算log4j.jar的版本是一致的,加载了多个相同的jar包,也不是很优雅的吧。

所以,将项目打包成被引用jar包,只打自己写的类,将第三方jar包以依赖的方式提供更科学。

关于Java项目打包的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. Java项目打包发布

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

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

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

  8. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  9. Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...

  10. Java项目打包工具安装失败解决方法

    在学习Java的时候我们打包项目但遇到例如以下情况:(提示没有找到java的执行环境! ) 网上眼下有两中的解决方式: (1)选择本地jdk环境; (2)下载Download 可是第一种选择本地老是失 ...

随机推荐

  1. BizTalk开发系列(十六) XML命名空间

    BizTalk开发过程中如果有对XML进行开发操作,比如在自定义代码里操作XML消息或者在Mapping的时候使用Xpath对XML进行操 作.则有机会遇到XML命名空间的问题.常见的是使用Xpath ...

  2. Total Commander 常用快捷键(并附快捷键大全)

    Total Commander 常用快捷键 喜欢用Total Commander的人,都会记住它的一些快捷键,这会给你的操作带来很大的方便,以下是经常会用到的快捷键,大家可以记住一些自己用得最多的操作 ...

  3. Minimum no. of iterations to pass information to all nodes in the tree

    Given a very large n-ary tree. Where the root node has some information which it wants to pass to al ...

  4. ORACLE常见错误代码的分析与解决

    (一)在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分 ...

  5. ng-repeat 嵌套 ng-switch 出错解决

    Error: $compile:ctreq Missing Required Controller Controller 'ngSwitch', required by directive 'ngSw ...

  6. vscode 编写python如何禁止 flake8 提示 line too long

    使用vscode编写python还是挺舒服的,但是如果给vscode安装了语法校验插件,例如flake8,会常常提示一些非常苛刻的语法问题,其中最让人不能忍受的就是line to long. 一行仅能 ...

  7. php日期时间函数和数学函数

    <?php //第一部分:日期和时间函数 ----------------------------- time(); //int time(void),返回当前时间的时间戳 mktime(); ...

  8. synchronized同步块和volatile同步变量

    Java语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而 ...

  9. SDK开发断点失效

    做SDK开发,一般会创建一个静态库工程,然后添加一个app的Target 可是,Xcode7创建的工程,app的Target中断点有效,能断住,为什么静态库的Target中的断点断不住呀. 断点断住发 ...

  10. 安装eclipse与pydev

    按照此文档 最简单的eclipse安装方法 sudo apt-get install eclipse 弊端:因为ubuntu默认安装的不是最新版本的eclipse,所以你也不能安装最新的pydev. ...