1、将java文件编译成class文件
- 直接编译
javac xxx.java
- 指定JDK版本编译
javac -target 1.8 -source 1.8 xxxx.java
- 多个文件同时编译
javac *.java
2、dx工具的配置
- anroid sdk 一般自带这个,是在build-tools目录下
![](https://img.haomeiwen.com/i2108792/a9e5e5cc46a62ed3.png)
![](https://img.haomeiwen.com/i2108792/a81910d4bdd15d72.png)
- 配置环境变量
image.png
![](https://img.haomeiwen.com/i2108792/c84eb4d2be8fd757.png)
3、准备好目录
- 假设我要操作的位置位于
![](https://img.haomeiwen.com/i2108792/4c8b672fd6aaff17.png)
- 把整个com文件夹拷贝到电脑磁盘的任何一个位置
![](https://img.haomeiwen.com/i2108792/eae3025283a15f09.png)
- dex命令操作
dx --dex --output=say_something_hotfix.jar com\example\classloaderdemo\*.class
- 最后生成的文件
![](https://img.haomeiwen.com/i2108792/2143e80f4343997c.png)
- 如果不按照上述步骤操作的话,很可能出现如下错误
![](https://img.haomeiwen.com/i2108792/42539968ba711ea7.png)
4、神坑说明
-
直接曾经试过先把所有class先生成jar包,然后在用dx工具优化为jar包的文件为dex,这样做也是没问题的,不过会容易出现如下的一个错误
image.png
-
原因说明:这是应该jdk的版本不一致造成的
![](https://img.haomeiwen.com/i2108792/0915c9741c7470b9.png)
![](https://img.haomeiwen.com/i2108792/86ccf2af2513c0b9.png)
![](https://img.haomeiwen.com/i2108792/116e56c51ceaa417.png)
![](https://img.haomeiwen.com/i2108792/f2e87056e75e6d57.png)
![](https://img.haomeiwen.com/i2108792/5f9f4cf75ed9fba1.png)
![](https://img.haomeiwen.com/i2108792/f20e0abad41f3099.png)
网友评论