如何将nutch源代码进行修改后将项目和第三方jar包打成一个整体ar包

小编给大家分享一下如何将nutch源代码进行修改后将项目和第三方jar包打成一个整体ar包,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

创新互联公司是一家专注于成都做网站、成都网站建设、成都外贸网站建设与策划设计,滨湖网站建设哪家好?创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:滨湖等地区。滨湖做网站价格咨询:13518219792

我在打好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

看完了这篇文章,相信你对“如何将nutch源代码进行修改后将项目和第三方jar包打成一个整体ar包”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


本文题目:如何将nutch源代码进行修改后将项目和第三方jar包打成一个整体ar包
网页链接:http://pwwzsj.com/article/ijdgjg.html