我一直试图通过重新签名来测试apk文件,并了解了用于签名apk的re-sign.jar拖放工具。我尝试在Ubuntu上使用终端来运行它,但总是显示JAVA-HOME not set。我的日食在工作,AVD在工作,adb在工作,这有什么问题?请帮帮忙。
看一下这个错误:

终端中的java -version给我: java版本"1.8.0_11“Java(TM) SE运行时环境(build 1.8.0_11-b12) Java HotSpot(TM)服务器VM (build 25.11-b03,混合模式)
发布于 2014-08-18 00:35:07
设置"JAVA_HOME“环境变量
sudo update-alternatives --config java它可能会返回如下内容:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-oracle/jre/bin/java 1062 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-oracle/jre/bin/java 1062 manual mode按enter保留当前选择*,或键入选择编号:
安装路径分别为:
/usr/lib/jvm/java-7-oracle
/usr/lib/jvm/java-6-openjdk-amd64
/usr/lib/jvm/java-7-oracle从首选安装复制路径,然后编辑文件/etc/environment:
sudo nano /etc/environment在此文件中,添加以下行(将YOUR_PATH替换为刚刚复制的路径):
JAVA_HOME="YOUR_PATH"这应该足以设置环境变量。现在重新加载此文件:
source /etc/environment通过执行以下命令来测试它:
echo $JAVA_HOME如果返回刚才设置的路径,则环境变量设置成功。如果没有,请确保您正确地遵循了所有步骤。
发布于 2014-08-18 11:35:53
我不确定为什么需要sudo,因为通常jar签名工具不需要它。请尝试使用java -jar re-sign.jar。添加sudo时,不会设置JAVA_HOME。
你可以在终端中做一些实验:
Krypton@Krypton:~$ echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
Krypton@Krypton:~$ sudo -s
root@Krypton:~# echo $JAVA_HOME
root@Krypton:~# 所以在sudo模式下,JAVA_HOME是空的,这就是为什么你会得到这个错误信息。如果您坚持使用sudo运行它:
root@Krypton:~# sudo -E java -jar re-sign.jarhttps://stackoverflow.com/questions/25351171
复制相似问题