Android studio makeJar,adb调用jar包传参

本文详细介绍了如何使用Android Studio创建并打包java Module为jar,包括添加依赖、配置makejar任务,以及如何将第三方jar类打包到自定义jar中。接着讲解了如何通过adb调用jar并传递参数,可用于执行各种Java代码实现的功能,如文件操作、日志处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1:如何使用AndroidStudio 打jar包

1.1 新建一个demo项目,并添加 依赖 一个java Module 模块

1.2 Module makejardemolib 的 build.gradle 文件中添加 makejar任务

1.3 Build -> Rebuild Project 项目,在 Module makejardemolib  build/lib 目录下生成对应 makejardemolib.jar 文件

1.4 执行makeJar 生成 在上面定义的目录下生成  对应的jar包文件

2:如何将 lib 下的jar中的类 打到jar中

2.1 Module中依赖一个Okhttp,找到 Okhttp的jar包添加到 模块的lib目录下

​2.2 在 makeJar 方法中添加  from(project.zipTree("libs/okhttp-4.1.0.jar"))

3:adb调用jar如何传参

3.1 编写接收外部传参测试代码

3.2  adb 窗口执行测试 外部调用传参

3.2  我们可以用来做什么


Demo Github地址:

GitHub - Mr-Bian/MakeJarDemo

正文

1:如何使用AndroidStudio 打jar包

1.1 新建一个demo项目,并添加 依赖 一个java Module 模块

File -> new -> New Module -> 选择 java or Kotlin Library -> next

主模块App 中 build.gradle 中添加依赖

implementation project(path: ':makejardemolib')

1.2 Module makejardemolib 的 build.gradle 文件中添加 makejar任务

/* jar 包名称 */
def jarName = "makejarTest_1.0";
/* 生成jar包的位置 */
def outputLocal = "build";
/* 待打包文件位置 */
def zipFile = file("build/libs/makejardemolib.jar")

task makeJar(type: Jar) {
    /* 定义jar包中的主类 */
    /* 定义的主类,在cmd中 调用  java -jar xxx xxx xxx 时,定义的这个主类的 main方法会接受 后面的参数 */
    manifest.attributes "Main-Class": "com.bianbian.makejardemolib.UseJarTest"
    from zipTree(zipFile)
    /* 将 assets 目录下文件打进去 */
    /* 语法猜测可能是: */
    /* 来自于 文件(目录:"xx/xx/path", 包含:['xx/所有文件']) */
    from fileTree(dir: "src/main", includes: ['assets/**'])
    /* lib 下的jar中的类,打到jar包中 */
    /* 来自于 project(下的).压缩包("目录path/xxx.jar")) */
//    from(project.zipTree("libs/xxx.jar"))
    baseName = jarName
    destinationDir = file(outputLocal)
}
makeJar.dependsOn(build)

下面一个图来表示下对应注释

1.3 Build -> Rebuild Project 项目,在 Module makejardemolib  build/lib 目录下生成对应 makejardemolib.jar 文件

1.4 执行makeJar 生成 在上面定义的目录下生成  对应的jar包文件

 点击makejar 上的绿色小箭头,然后点击第一项



2:如何将 lib 下的jar中的类 打到jar中

2.1 Module中依赖一个Okhttp,找到 Okhttp的jar包添加到 模块的lib目录下

implementation 'com.squareup.okhttp3:okhttp:4.1.0'

2.2 在 makeJar 方法中添加  from(project.zipTree("libs/okhttp-4.1.0.jar"))

 重新Rebuild 项目,运行makejar,发现打出来而jar包,已经包含了对应的 okhttp.jar 中的文件

将一些三方的jar中类 打进jar中的目的:

当我们需要这些三方类实现某些功能的时候,单纯生成的jar只有我们 自己编写的一些代码类;

会导致打出来的jar功能无法使用;


3:adb调用jar如何传参

3.1 编写接收外部传参测试代码

新建类 UseJarTest,并添加main方法,详见代码中注释 

public class UseJarTest {
    private static final String TAG = "UseJarTest";

    /* 在cmd调用适用jar包时命令如下 */
    /* java -jar xxx.jar 参数1 参数2 参数3 */
    public static void main(String[] args) {
        /* jar中配置的main class 中的 main方法参数 数组 args,会接受上述  参数1 参数2 参数3 */
        LogUtil.info(TAG, "args length: " + args.length);
        for (String str : args) {
            LogUtil.info(TAG, "args: " + str);
        }
    }
}

3.2  adb 窗口执行测试 外部调用传参

 执行命令:

java -jar makejarTest_1.0.jar 参数1 参数2 参数3 参数4

窗口中会打印 代码中 使用  System.out.println(TAG + tag + ": " + logContent); 输出的日志

public class LogUtil {
    private static final String TAG = "MakeJarDemo: ";

    public static void info(String tag, String logContent) {
        /* 这里 println 为换行输入; print 为整行输入 */
        System.out.println(TAG + tag + ": " + logContent);
    }
}

注:依赖 并运行在 java 环境下

1:电脑中配置java jdk 环境变量

2:业务中如果涉及android 相关依赖调用会无法使用

3.2  我们可以用来做什么

可以用来做你想做的啥都可以,例如 操作电脑中的本地文件,输出 excel 表格,过滤 error 日志,使用 okhttp 进行文件上传 等等;

只要能想到可以使用 java 代码实现的功能都可以;

上限非常之高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值