溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何將nutch源代碼進(jìn)行修改后將項(xiàng)目和第三方j(luò)ar包打成一個(gè)整體ar包

發(fā)布時(shí)間:2021-11-19 16:46:06 來(lái)源:億速云 閱讀:154 作者:小新 欄目:云計(jì)算

小編給大家分享一下如何將nutch源代碼進(jìn)行修改后將項(xiàng)目和第三方j(luò)ar包打成一個(gè)整體ar包,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

我在打好jar包后,在Linux下運(yùn)行

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

報(bào)錯(cuò)信息為:

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

意思就是說(shuō):我們的第三方j(luò)ar包并未起作用

最開始,一直以為是打包的方法有誤。翻來(lái)覆去折騰了好幾個(gè)小時(shí)。最終老大提了另一種思路,他覺(jué)得用ant打包可能會(huì)容易一些。但是,在網(wǎng)上找了些資料看了一下,發(fā)現(xiàn)挺麻煩的。最終沒(méi)有做這種方法。

繼續(xù)查錯(cuò),我也懷疑過(guò)是不是hadoop jar包的問(wèn)題,我認(rèn)為可能是hadoop-core.jar下的META-INF文件下內(nèi)容程序找不到。事實(shí)上,也不是這個(gè)原因,上邊的想法都只是猜測(cè)而已。hadoop-core.jar的結(jié)構(gòu)和其他第三方j(luò)ar包的結(jié)構(gòu)完全一致。

沒(méi)辦法,最后不知道怎么腦袋一抽~才想到怎么不在windows下的dos中測(cè)一下。這一次,發(fā)現(xiàn)打的jar包是可以運(yùn)行的。

到了這兒,老大問(wèn)我,為什么在Linux下不行,在Windows下可以?其實(shí),當(dāng)時(shí)一高興,我也沒(méi)思考過(guò)這個(gè)問(wèn)題:所打的jar包,為什么在windows下可以運(yùn)行成功,但是在Linux下卻不可以。

老大提了思路,他說(shuō):會(huì)不會(huì)是,路徑的問(wèn)題。因?yàn)閣indows下的路徑分隔符和Linux下的路徑分隔符有區(qū)別。我恍然~~這種可能性非常大?。?!

我每次對(duì)于windows和Linux的路徑、轉(zhuǎn)義字符等一系列的區(qū)別總是傻傻分不清楚。雖然知道它們有區(qū)別,但是每次都記不住。導(dǎo)致,每次在遇到這些問(wèn)題時(shí),都會(huì)浪費(fèi)大量的時(shí)間做無(wú)用功~~~~

這次的感觸是:

1、要堅(jiān)持,有時(shí)候希望就在你絕望到將要放棄的時(shí)候出現(xiàn)。

2、思維要活躍,想問(wèn)題不要局限在很小的框子內(nèi),天馬行空最好。有時(shí)候,看似不相關(guān)的兩個(gè)事情,當(dāng)你換一種思路來(lái)看時(shí),它正好能解決你的問(wèn)題。

3、要不斷地回顧。回顧之前的想法,回顧之前的做法,看看自己疏忽了哪些關(guān)鍵點(diǎn)。有時(shí)候思路和方向都沒(méi)有錯(cuò),錯(cuò)就錯(cuò)在細(xì)節(jié)上??勺约哼€糾結(jié)的認(rèn)為,或許思路和方向都錯(cuò)得太遠(yuǎn)了。

4、遇到問(wèn)題了,不能僅僅是解決問(wèn)題,而且要知道為什么。想明白,然后下次注意。

結(jié)合前輩們的相關(guān)資料:

多項(xiàng)目相互依賴的Java程序打包并引入外部Jar包方式

Eclipse將引用了第三方j(luò)ar包的Java項(xiàng)目打包成jar文件的兩種方法

簡(jiǎn)單jar打包示例 合并第三方j(luò)ar包打包操作

下面列出詳細(xì)的打包過(guò)程:

1、在我們所需要打包的項(xiàng)目下新建文件夾META-INF。我的項(xiàng)目名稱為nutch源代碼的項(xiàng)目名稱branch-1.7

2、在META-INF下新建文件MANIFEST.MF。文件內(nèi)容類似:

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

看完了這篇文章,相信你對(duì)“如何將nutch源代碼進(jìn)行修改后將項(xiàng)目和第三方j(luò)ar包打成一個(gè)整體ar包”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI