0x00 需求
最近在做一個Android的項目,一開始安裝的是Java8用於項目的開發。但是在項目后期需要用到drozer用於檢測項目的安全性,要搭建drozer的測試環境必須要使用Java6,否則會出現問題引用一下官方的說明
It is very important that Java 1.6 is installed and used. This is because Android bytecode is only compliant to
version 1.6 and not higher versions. Making use of any version of javac other than 1.6 will result in errors during
compilation that look similar to the following:trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing ClassLoadTest.class
...while processing ClassLoadTest.class
1 warning
no classfiles specified
Error whilst building APK bundle.
0x01 解決方法
1. 第一步:下載兩個不同版本的Java,然后分別的安裝。(我安裝的時候使用的是默認的安裝路徑,當然你也可以自定義安裝路徑)
2. 第二步:下面就是要對環境變量進行配置了,我的電腦-->右鍵-->屬性,選擇高級系統設置-->環境變量。
3. 選擇用戶的環境變量中的path,刪除其中的‘C:\ProgramData\Oracle\Java\javapath;’環境變量,如果不刪除則會出現問題,在輸入 java -version 時顯示的會一直是先安裝的那個版本的Java。
4. 配置Java6和Java8的環境變量
在系統變量中新建兩個系統變量分別是JAVA6_HOME和JAVA8_HOME,在新建時選擇它們各自對應的安裝路徑。
5. 設置CLASSPATH環境變量
同4新建一個系統變量變量名稱為CLASSPATH,變量值為:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
注意要將前面的“.”也要復制進去。
6. 完成系統的Java的設置
在系統變量中新建一個變量名為JAVA_HOME的環境變量,變量的值為JAVA6_HOME或者JAVA8_HOME。然后選擇系統變量中的path,在變量值后添加如下代碼
Windows7中的配置: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin Windows10中的配置: %JAVA_HOME%\bin %JAVA_HOME%\jre\bin
7. 刪除C:\Windows\System32下的java.exe、javaw.exe、javaws.exe三個文件。
0x02 測試
當JAVA_HOME的變量值為JAVA6_HOME時:
當JAVA_HOME的變量值為JAVA8_HOME時:
0x03 注意事項
- 一定要刪除在用戶變量中的‘C:\ProgramData\Oracle\Java\javapath;’
- 一定要刪除system32中的三個帶有Java的exe文件
- 在修改JAVA_HOME的變量值后要一路確定到底,然后退出當前的cmd命令窗口環境變量才會生效