文档章节

将nutch源代码进行修改后,将项目和第三方jar包打成一个整体ar包的方法和感悟

hiqj
 hiqj
发布于 2014/09/01 21:41
字数 902
阅读 160
收藏 0

打jar包的思路,参照上一篇资料Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法

之所以再做笔记是因为:我在打好jar包后,在Linux下运行

[root@nutch-five test]# java -jar crawl-test.jar 

报错信息为:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/Tool

意思就是说:我们的第三方jar包并未起作用

最开始,一直以为是打包的方法有误。翻来覆去折腾了好几个小时。最终老大提了另一种思路,他觉得用ant打包可能会容易一些。但是,在网上找了些资料看了一下,发现挺麻烦的。最终没有做这种方法。

继续查错,我也怀疑过是不是hadoop jar包的问题,我认为可能是hadoop-core.jar下的META-INF文件下内容程序找不到。事实上,也不是这个原因,上边的想法都只是猜测而已。hadoop-core.jar的结构和其他第三方jar包的结构完全一致。

没办法,最后不知道怎么脑袋一抽~才想到怎么不在windows下的dos中测一下。这一次,发现打的jar包是可以运行的。

到了这儿,老大问我,为什么在Linux下不行,在Windows下可以?其实,当时一高兴,我也没思考过这个问题:所打的jar包,为什么在windows下可以运行成功,但是在Linux下却不可以。

老大提了思路,他说:会不会是,路径的问题。因为windows下的路径分隔符和Linux下的路径分隔符有区别。我恍然~~这种可能性非常大!!!

我每次对于windows和Linux的路径、转义字符等一系列的区别总是傻傻分不清楚。虽然知道它们有区别,但是每次都记不住。导致,每次在遇到这些问题时,都会浪费大量的时间做无用功~~~~

这次的感触是:

1、要坚持,有时候希望就在你绝望到将要放弃的时候出现。

2、思维要活跃,想问题不要局限在很小的框子内,天马行空最好。有时候,看似不相关的两个事情,当你换一种思路来看时,它正好能解决你的问题。

3、要不断地回顾。回顾之前的想法,回顾之前的做法,看看自己疏忽了哪些关键点。有时候思路和方向都没有错,错就错在细节上。可自己还纠结的认为,或许思路和方向都错得太远了。

4、遇到问题了,不能仅仅是解决问题,而且要知道为什么。想明白,然后下次注意。

结合前辈们的相关资料:

多项目相互依赖的Java程序打包并引入外部Jar包方式

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

简单jar打包示例 合并第三方jar包打包操作

下面列出详细的打包过程:

1、在我们所需要打包的项目下新建文件夹META-INF。我的项目名称为nutch源代码的项目名称branch-1.7

2、META-INF下新建文件MANIFEST.MF。文件内容类似:

Manifest-Version: 1.0 
Main-Class: com.pacong.convert.auto.propertes.ConvertAutoProperties 
Class-Path: lib/xxx.jar lib/yyy.jar lib/zzz.jar





© 著作权归作者所有

hiqj
粉丝 24
博文 208
码字总数 92586
作品 0
渝北
程序员
私信 提问
Nutch1.7 配置到 eclipse

在nutch项目集成到eclipse中遇到了很多的问题,第一次参照网上资料配置成功后,由于没做笔记。第二天写笔记时,没想到又忘记了。诶,悲催的又花了一天。总觉得这次配环境花的时间真的是太多了...

hiqj
2014/04/19
79
0
Nutch1.7和eclipse集成

Nutch1.7和eclipse集成 1、将nutch项目部署到eclipse 首先到nutch官网上找到FAQ链接http://wiki.apache.org/nutch/FAQ,进入链接 点击第二个链接查看。 参照文档进行配置,有卡壳不明白的地方...

hiqj
2014/04/18
35
0
JAR打包的误区:第三方包的嵌套打包

转自:http://guhanjie.iteye.com/blog/1912769 今天弄明白一个关于JAVA项目中JAR打包的问题。 我们有时可能会把自己的项目做成第三方包给别人使用,但是同时我们自己的项目又引用了其他已有...

小墨and丫头
2018/06/26
0
0
mapreduce如何调用第三方jar包

MapReduce程式调用第三方包:我在使用过程中需要用到hbase的jar包,若要使用,常规是添加到每台机器的classpath中,但是通过DistributeCache,在初始化前加入就ok了。要不就要将这些jar包打成...

Zero零_度
2015/09/06
136
0
Android项目实战(二十四):项目包成jar文件,并且将工程中引用的jar一起打入新的jar文件中

前言: 关于.jar文件: 平时我们Android项目开发中经常会用到第三方的.jar文件。 其实.jar文件就是一个类似.zip文件的压缩包,里面包含了一些源代码,注意的是.jar不包含资源文件(res、图片...

听着music睡
2016/09/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
16分钟前
2
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
27分钟前
2
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
36分钟前
5
0
从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
5
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部