1. 程式人生 > >多個jar包合併成一個jar包

多個jar包合併成一個jar包

Ant方式

注意:ant預設執行build.xml檔案,這個檔案到目前為止是不存在的 需要我們建立。

如果不想命名為build.xml,執行時可以使用 ant -buildfile test.xml 命令指明要執行的構建檔案。

注意:把你需要合併的jar包 和 build.xml 檔案 放到同一個目錄下面

build.xml 檔案的格式如下

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <project
  3. name="lzg_dlna"
  4. basedir="D:\Android\android_tool\ant_test"
  5. default="makeSuperJar"
    >
  6. <target
  7. name="makeSuperJar"
  8. description="description" >
  9. <jar destfile="lzg_dlna.jar" >
  10. <zipfileset src="cdi-api.jar" />
  11. <zipfileset src="http-2.2.1.jar" />
  12. <zipfileset src="httpclient-4.2.2.jar"/>
  13. <zipfileset src
    ="httpcore-4.2.3.jar" />
  14. <zipfileset src="javax.annotation_1.0.jar" />
  15. <zipfileset src="javax.inject.jar" />
  16. <zipfileset src="javax.servlet-3.0.0.v201103241009.jar" />
  17. <zipfileset src="jetty-client-8.1.9.v20130131.jar" />
  18. <zipfileset src="jetty-continuation-8.1.9.v20130131.jar"
    />
  19. <zipfileset src="jetty-http-8.1.9.v20130131.jar" />
  20. <zipfileset src="jetty-io-8.1.9.v20130131.jar" />
  21. <zipfileset src="jetty-security-8.1.9.v20130131.jar" />
  22. <zipfileset src="jetty-server-8.1.9.v20130131.jar" />
  23. <zipfileset src="jetty-servlet-8.1.9.v20130131.jar" />
  24. <zipfileset src="jetty-util-8.1.9.v20130131.jar" />
  25. <zipfileset src="seamless-http-1.0-alpha2.jar" />
  26. <zipfileset src="seamless-util-1.0-alpha2.jar" />
  27. <zipfileset src="seamless-xml-1.0-alpha2.jar" />
  28. <zipfileset src="slf4j-api-1.6.1.jar" />
  29. <zipfileset src="slf4j-jdk14-1.6.1.jar" />
  30. </jar>
  31. </target>
  32. </project>

name  : 表示的是你即將合成的jar包的名字 可以隨便寫

basedir :  表示你存放jar包的目錄(D:\Android\android_tool\ant_test這個目錄下放的是你當前需要合併的所有jar 和build.xml檔案)

OK 合併成功  !  該有小夥伴問了 能不能用啊 這麼簡單就成功了 

接下開始把lzg_dlna.jar配置到專案裡使用

如果你的instant run裡面第一個選項是勾選的 執行會可能會報錯 如果報錯的話直接取消勾選


一般如果你的這個按鈕是勾選的話執行就會報錯

  1. Error:注: 某些輸入檔案使用或覆蓋了已過時的 API。
  2. 注: 有關詳細資訊, 請使用 -Xlint:deprecation 重新編譯。
  3. 注: 某些輸入檔案使用了未經檢查或不安全的操作。
  4. 注: 有關詳細資訊, 請使用 -Xlint:unchecked 重新編譯。
  5. FAILURE: Build failed with an exception.
  6. * What went wrong:
  7. Execution failed for task ':app:transformClassesWithInstantRunForDebug'.
  8. > Invalid signature file digest for Manifest main attributes
  9. * Try:
  10. Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

如果是的話直接取消勾選在次執行就OK了

合併完成了

引用自 https://blog.csdn.net/gzl003csdn/article/details/53539133

利用Jar語法

匯出JAR包:

eclipse中,右鍵工程,點選export,選擇Jar file,選則需要打包的工程,將工程內除srclib,以外的檔案取消選擇,後改變輸出的Jar包的名字,輸出即可。

JAR包合併:

  1. 將要合併的JAR包放到同一個資料夾下;

  2. 進入命令列;

  3. 定位到當前資料夾;

  4. 通過jar解壓命令將jar包全部解壓,命令為 >jar –xvf xx.jar;

  5. 刪除目錄下的.jar檔案,命令為>del /F *.jar;

  6. 合併所有的.class檔案至jar,命令為>jar –cvfM game.jar .,注意:jar .

  1. $ mkdir tmp
  2. $ cd tmp
  3. $ jar -xf ../jar1.jar
  4. $ jar -xf ../jar2.jar
  5. $ jar -cvf combined.jar -C tmp .