linux shell java jar 使用依賴包時classpath的設定問題__shell

來源:互聯網
上載者:User

在linux下通過命令列或shell指令碼執行jar包時,如果該jar包沒有引用外部jar包,則非常容易,只需使用如下命令就可以實現:

java -jar Test.jar   #注意,如果在打包jar檔案時,沒有指定Main入口所在的類,則需要在後面加上類的命名,如com.test.HelloWord
但是實際應用或者生產環境,根本不可能有如果容易的需求,那如果該jar需要引用外部jar包,那又當如何?。需要做一些設定工作,下面是實現步驟:

一、使用jar包的設定檔來引用外部jar包

1、配置MANIFEST.MF檔案

在打包好的jar中,META-INF/MANIFEST.MF 這個檔案中列出所需的外部jar包,檔案內容參考如下:

Manifest-Version: 1.0 
Main-Class: xx.json.SentJsonT 
Class-Path: lib/commons-beanutils-1.9.2.jar lib/commons-collections-3.2.2.jar lib/commons-io-2.5.jar lib/commons-lang-2.6.jar lib/commons-logging-1.2.jar lib/ezmorph-1.0.6.jar lib/httpclient-4.4.1.jar lib/httpcore-4.4.1.jar lib/httpmime-4.4.1.jar lib/jcl-over-slf4j-1.7.7.jar lib/json-lib-2.4-jdk15.jar lib/noggit-0.6.jar slf4j-api-1.7.7.jar lib/solr-solrj-6.0.1.jar lib/stax2-api-3.1.4.jar lib/woodstox-core-asl-4.4.1.jar lib/zookeeper-3.4.6.jar


注意事項

1)、Class-Path 後面的jar包的路徑是liunx下的相對路徑,Windows需要修改為\。

2)、Class-Path 後面的jar包之間使用空格分隔,而且必須在同一行中。


2、把所有外部jar包置於lib檔案夾下

在xx.json.SentJsonT.jar所在的檔案夾下,建立lib檔案夾,把所有外部jar包放到該檔案夾下。

3、運行該jar包

java -jar SendJonT.jar<span style="white-space:pre"></span>#一樣的簡單,不一樣的效果


二、使用Java系統內容變數

就是把所有外部的jar包,添加到CLASS_PATH變數裡。




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.