<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    心有多大舞臺(tái)便有多大

    Embrace changes, pursue excellence, share niceness.

    equinox開(kāi)發(fā)osgi時(shí)的一個(gè)小技巧:定義公用的jar文件.

    一般在開(kāi)發(fā)java項(xiàng)目的時(shí)候,我們會(huì)有一些公用的jar文件,在開(kāi)發(fā)bundle的時(shí)候,如果把這些jar文件重復(fù)的在各bundle中復(fù)制的話,即煩瑣,又容易出錯(cuò).
    今天我琢磨出一個(gè)方法,雖然不敢說(shuō)這么做是否是正確方法,但至少解決了正確的問(wèn)題(用錯(cuò)誤的方法解決正確的事總比用正確的方法解決錯(cuò)誤的事好!哈哈).下面是解決的方法:
     1.修改org.eclipse.osgi.xxxxxx.jar文件
       a.把文件中META-INF目錄中的ECLIPSE.SF,ECLIPSE.RSA文件刪除掉(因?yàn)閖ar文件是通過(guò)SF文件來(lái)保證jar中的內(nèi)容不被篡改!如果不了解這個(gè)的,可以去查下jar的詳細(xì)說(shuō)明)
       b.修改jar根目錄下的J2SE-1.5.profile文件(如果你開(kāi)發(fā)osgi使用的是其它J2SE環(huán)境,請(qǐng)編輯相應(yīng)的文件)
          這個(gè)文件中定義了osgi啟動(dòng)時(shí)的org.osgi.framework.system.packages屬性,因?yàn)閛sgi中每個(gè)bundle都有自己獨(dú)立的classpath,那么在各個(gè)bundle之間共享的class就是通過(guò)這個(gè)屬性中定義的包來(lái)指定的.(如果不了解osgi的class載入機(jī)制,請(qǐng)參閱osgi的入門教材!),你可以在文件中的這個(gè)屬性值上加入自己的包,例如:
     ........
     org.ietf.jgss,\
     org.omg.*,\
     org.w3c.*,\
     org.xml.*,\
     sun.*,\
     demo.*           //這一行是新增加的包
    2.把demo.*所在的jar文件加入到啟動(dòng)osgi的classpath中,一般你可以系統(tǒng)環(huán)境變量的classpath中加入這個(gè)jar文件路徑.
    3.把第1步中修改后的osgi jar文件拷貝到eclipse的plugins目錄下,重新啟動(dòng)eclipse
    4.打開(kāi)一個(gè)bundle的MANIFEST.MF文件,在dependencies項(xiàng)中,你就可以在imported packages中導(dǎo)入剛才定義的demo包了.

    雖然這樣做可以做到在各個(gè)bundle間共享一些jar文件,但這些公用的jar一定要確認(rèn)清楚,否則會(huì)給以后的開(kāi)發(fā)帶來(lái)麻煩!因?yàn)橹杂胦sgi來(lái)開(kāi)發(fā),就是為了使用它的class loader的管理機(jī)制.

    posted on 2008-05-29 19:33 pony 閱讀(2744) 評(píng)論(3)  編輯  收藏 所屬分類: Java

    評(píng)論

    # re: equinox開(kāi)發(fā)osgi時(shí)的一個(gè)小技巧:定義公用的jar文件. 2008-05-30 09:31 遲來(lái)的兵

    其實(shí)可以不需要修改人家的東西,我們可以把依賴的每一個(gè)jar包都做成bundle,把需要的包export出去,就像eclipse那樣。不過(guò)需要把這些jar包放在一起管理,避免重復(fù)制作bundle。  回復(fù)  更多評(píng)論   

    # re: equinox開(kāi)發(fā)osgi時(shí)的一個(gè)小技巧:定義公用的jar文件. 2008-05-30 10:19 Link

    同意樓上的,公用的類庫(kù)可以做成一個(gè)Bundle,在Bundle中把每個(gè)包都Export出來(lái),這樣Hacker OSGi本身,感覺(jué)有點(diǎn)不妥。  回復(fù)  更多評(píng)論   

    # re: equinox開(kāi)發(fā)osgi時(shí)的一個(gè)小技巧:定義公用的jar文件. 2008-05-30 13:40 Always BaNg.

    這樣是不是太麻煩了一點(diǎn)?如果下一版本Equinox不這么干你的豈不是不兼容了?

    寫個(gè)批處理,把所有公用的jar打到一個(gè)jar包,然后轉(zhuǎn)換jar為bundle,豈不更好?

    或者在Eclipse的向?qū)В篜lug-in Development中有一個(gè)向?qū)Ь褪?br>Plug-in from existing JAR archives

    我都是這么干的:)  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 亚洲精品乱码久久久久66| 亚洲国产品综合人成综合网站| 一级毛片免费不卡在线| 亚洲国产成人精品久久| 四虎永久免费地址在线观看| 中国一级特黄高清免费的大片中国一级黄色片 | 亚洲一区二区三区四区在线观看| 青娱分类视频精品免费2| 小说区亚洲自拍另类| 无码欧精品亚洲日韩一区| 在线播放免费人成视频在线观看| 国产vA免费精品高清在线观看| 亚洲成人高清在线观看| 亚洲中文字幕视频国产| 成年女人免费碰碰视频| 拍拍拍无挡视频免费观看1000| 亚洲无码一区二区三区| 亚洲av日韩av激情亚洲| 国产99视频精品免费视频7| 亚洲a一级免费视频| 黄色毛片视频免费| 亚洲1234区乱码| 国产亚洲成AV人片在线观黄桃| 成年女人看片免费视频播放器| 黄网站免费在线观看| 国产精品亚洲精品爽爽| 亚洲喷奶水中文字幕电影| 亚洲国产a∨无码中文777 | 亚洲天天在线日亚洲洲精| 免费永久国产在线视频| 久久国产免费福利永久| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 免费大片av手机看片高清| 亚洲深深色噜噜狠狠网站| 久久亚洲国产精品五月天| 亚洲国产天堂久久综合| 国产美女在线精品免费观看| 久久WWW免费人成一看片| 免费日本一区二区| xvideos永久免费入口| 国产成人不卡亚洲精品91|