Android studio编译可执行jar包

gradle配置

在module的build.gradle文件末尾加入以下代码:

task deleteOldJar(type: org.gradle.api.tasks.Delete){
    //删除存在的
    delete'build/libs/getChannel.jar'
}

task makeJar(type: Jar){
    //指定生成的jar名
    baseName'getChannel'

    //设置拷贝的文件
    from('build/classes/java/main')
    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)

jar包中引入第三方jar包

之前使用常规打包方式,遇到运行问题:

Exception in thread "main" java.lang.NoClassDefFoundError

可通过from方法解决。

具体方法:

1、将jar包至于libs目录下

2、build.gradle文件中加入from (project.zipTree("libs/java-json.jar"))

此时,编译出来的jar文件中就存在第三方的代码了

编译

在gradle侧边栏中找到makeJar并双击运行

正常运行,并无错误情况下,会在module/build/libs文件目录下生产jar包,getChannel.jar就是我们需要的jar文件。

此时,jar包还不是我们最终需要的可执行jar包,还需经过一下操作。

jar包转为可执行jar包

1、解压jar包

2、修改META-INF\MANIFEST.MF文件

        打开MANIFEST.MF文件,原始内容为:

Manifest-Version: 1.0

        设置代码入口:

Manifest-Version: 1.0
Main-Class: com.haowan.lib.MyClass

3、在jar解压后的文件夹下 按shift+鼠标右键 选择:在此处打开命令窗口 ,或在文件路径中输入cmd回车,在cmd中执行如下命:

jar -cvmf META-INF\MANIFEST.MF test.jar ./

        命令执行完毕后,会在当前目录中生成一个test.jar文件,这就是我们最终得到的可执行jar包

运行可执行jar包

java -jar F:\JOY\project\HgFenXiao\lib\build\libs\getChannel\test.jar p1 p2

通过java -jar方式运行指定的jar包,p1、p2为传入的参数。

java中接收方式也很简单:

public static void main(String[] args) {
    String p1 = args[0]
    String p2 = args[1]
    ...
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜂蜜_柚子茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值