首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【开发环境】Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )

【开发环境】Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )

作者头像
韩曙亮
发布2023-03-29 20:32:29
发布2023-03-29 20:32:29
1.4K0
举报

文章目录

前言

参考 【IntelliJ IDEA】导出可执行 JAR 包 博客 , 导出可执行 JAR 包 ;

一、IntelliJ IDEA 中创建 Java / Kotlin 工程


在 IntelliJ IDEA 中创建 Java / Kotlin 工程 ,

注意选择 Kotlin/JVM 附加依赖库和框架 ,

设置工程路径和工程名 ;

二、准备 Java 和 Kotlin 代码


准备 Java 和 Kotlin 代码 ;

Java 代码 :

代码语言:javascript
复制
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello Android !");
    }
}

Kotlin 代码 :

代码语言:javascript
复制
class Student {
    var name: String = "Tom"
    var age: Int = 18
}

fun main(args: Array<String>) {
    var student: Student = Student();
    print(student.name + " , " + student.age)
}

三、编译在 PC 上可执行的 Java / Kotlin JAR 包


右键点击 工程 根目录 , 在菜单中选择 " Open Module Settings " ,

在 " Project Structure " 对话框中的 " Artifacts " 选项卡 , 点击 " + " 按钮 , 选择 " Add " 下拉菜单中的 " JAR " 选项的 " From modules with dependencies " 子项目 ,

弹出 " Create JAR from Modules " 对话框 , 点击 " Main Class " 右侧的文件夹按钮 ,

Java 可执行程序的 META-INF/MANIFEST.MF 文件保存在 D:\002_Project\003_Java_Work\workspace\AndroidShell\java-meta-inf 路径中 ;

可执行文件元数据 :

同样按照上述流程 , 在打包 Kotlin 程序的可执行文件 , Kotlin 可执行程序的 META-INF/MANIFEST.MF 文件保存在 D:\002_Project\003_Java_Work\workspace\AndroidShell\kotlin-meta-inf 路径中 ;

可执行文件元数据 :

选择 菜单栏 / Build / Build Artifacts… 选项 ,

选择编译这两个 Artifact ;

编译完成后的可执行 JAR 文件 , 就在 D:\002_Project\003_Java_Work\workspace\AndroidShell\out\artifacts 目录下 , 其中

  • D:\002_Project\003_Java_Work\workspace\AndroidShell\out\artifacts\AndroidShell_jar\AndroidShell.jar 是 Kotlin 代码的可执行文件 ;
  • D:\002_Project\003_Java_Work\workspace\AndroidShell\out\artifacts\AndroidShell_jar2\AndroidShell.jar 是 Java 代码的可执行文件 ;

四、使用 dx 工具打包 DEX 字节码文件


参考 【Android 安全】DEX 加密 ( DEX 加密使用到的相关工具 | dx 工具 | zipalign 对齐工具 | apksigner 签名工具 ) 博客 ;

dx 工具 :

作用 : dx 工具的作用是将 class 或 jar 文件 生成 DEX 文件 ;

位置 : 该工具在 sdk 下的 build-tools 目录下 ,

使用命令 : dx –dex –output out.dex in.jar

代码语言:javascript
复制
dx --dex --output out.dex in.jar 

–output out.dex 表示要输出的 DEX 文件 ;

in.jar 表示输入文件 ;

在我的电脑上 dx 文件路径是 D:\001_Develop\001_SDK\Sdk\build-tools\30.0.2\dx.bat ;

将 dx 所在路径配置到环境变量中 ;

五、打包在 Android 中执行的 dex 文件


在 PC 中的可执行文件 , 打包成 dex 文件无法在 Android 中执行 ;

在 Android 中使用 dalvikvm 执行的 dex 文件 , 只能是使用 class 字节码文件打包 , 或者是没有 main 信息的可执行文件 , 这里选择使用 class 字节码文件打包 ;

注意 : Kotlin 代码编译的字节码文件 , 不能运行 ;

将 Java 可执行程序 , 打包到 DEX 文件中 ;

代码语言:javascript
复制
dx --dex --output java.dex Main.class

六、Android 中使用 dalvikvm 命令执行 dex 文件


前提 : 手机要 root , 否则无法执行任何操作 ;

将打包好的 java.dex 文件拷贝到 Android 中的 /data/system/debug 目录中 , 进入 /data/system/debug 目录 , 执行

代码语言:javascript
复制
dalvikvm -cp java.dex  Main

命令 , 即可运行打包好的 java.dex 文件的 Main 中的 main 函数 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、IntelliJ IDEA 中创建 Java / Kotlin 工程
  • 二、准备 Java 和 Kotlin 代码
  • 三、编译在 PC 上可执行的 Java / Kotlin JAR 包
  • 四、使用 dx 工具打包 DEX 字节码文件
  • 五、打包在 Android 中执行的 dex 文件
  • 六、Android 中使用 dalvikvm 命令执行 dex 文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档