android studio 生成可执行jar包
-
对应module 的 gradle android里:
-
task deleteOldJar(type: org.gradle.api.tasks.Delete){ //删除存在的 delete'build/libs/getChannel.jar' } task makeJar(type: Jar){ //指定生成的jar名 baseName'getChannel' //设置拷贝的文件 from('build/intermediates/javac/debug/classes') //from (project.zipTree("libs/java-json.jar"))//java-json.jar作为源码添加到jar中 //去掉不需要打包的目录和文件 exclude('BuildConfig.class','R.class') //去掉R$开头的文件 exclude{it.name.startsWith('R$')} } makeJar.dependsOn(deleteOldJar,build)
-
命令行:
- ./gradlew :module名:makeJar
- 这里的module名是在settings.gradle 里查看
- : 冒号是需要的,并不是格式
-
重新打包生成可执行的jar包:
- 解压缩后修改META-INF/MANIFEST.MF
添加入口类 Main-Class: com.tct.mylibrary.count - 重新打包命令:
- jar -cvfm countLines.jar META-INF/MANIFEST.MF com/
- 执行:
- java -jar countLines.jar params …
- 解压缩后修改META-INF/MANIFEST.MF
-
解释:
- jar cvfm 打包指令
- countLines.jar 新jar包的名字
- META-INF/MANIFEST.MF 主体编译文件(不可缺少)
- com/ 将com文件夹和里面所有文件放入新的countLines.jar中