打包JAVA类文件 命令_命令行指定类打包成dex文件

命令行指定类打包成dex文件

编写java代码

编译成class

打包成jar

dx命令生成对应的dex

编写java代码(D:\EnjoyFix\demo\src\main\java\com\demo\Test.java)

package com.demo;

import android.util.Log;

/**

* Created by xmq on 2019/4/24.

*/

public class Test {

private static String TAG = "Test";

public void test(){

Log.d(TAG, "测试");

}

}

编译成class

使用命令编译javac

javac D:\EnjoyFix\demo\src\main\java\com\demo\Test.java

197e9d05f04e

javac执行报错.png

编码问题:

Linux下为UTF-8编码,javac编译gbk编码的java文件时,容易出现“错误:编码UTF-8的不可映射字符”

Windows下为GBK编码,javac编译utf-8编码的java文件时,容易出现“错误:编码GBK的不可映射字符”

windows下编码问题解决方式:

javac -encoding utf-8 D:\EnjoyFix\demo\src\main\java\com\demo\Test.java

程序包不存在问题

android.util不存在com.demo包名的路径下

使用Android Studio Build生成,build完成后在如下目录找到Test.class文件

197e9d05f04e

demo目录结构.png

打包成jar

jar cvf D:\test.jar D:\com\demo\Test.class

生成dex

生成了jar后,我们就可以采用命令来生成对应的dex了,我们采用dx命令来生成,这里命令主要在Android sdk下bulid-tools中的dx工具。

dx --dex --output D:\test.dex D:\test.jar

197e9d05f04e

dex匹配错误.png

出现这个问题是打包生成jar的时候,直接复制了test.class文件到D盘,路径是test.class与Test.java里面的packagename不匹配,只需要把com包整个复制出来就ok了。然后使用jar cvf D:\test.jar D:\com\demo\Test.class命令就可以了。(下面也有另一种命令,完成.classs to .dex)

总结

这里只是演示如何分步打包得到dex文件,其实使用gradle命令更加简单方便。

tip:工程目录存放在命名中有空格的路径下面(如:Program Files),Program Files需要使用“ ”包裹,否则在读取class文件或者写入dex到该目录会失败。

197e9d05f04e

direction name contain space.png

另外有命令直接由.class 生成 .dex文件,其中dx.jar在D:\Program Files"\Android\Sdk\build-tools\28.0.3\lib下面,需要使用绝对路径

D:\EnjoyFix\demo\build\intermediates\classes\debug>java -jar "D:\Program Files"\Android\Sdk\build-tools\28.0.3\lib\dx.jar --dex --output=test.dex com\demo\Test.class

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值