我一直试图通过辞职来测试apk文件,并了解了重新签名.jar拖放工具以签署apks。我试图在Ubuntu上使用终端运行它,但它总是说没有设置JAVA-HOME。我的日食正在发挥作用,AVD正在发挥作用,adb正在发挥作用,那么这个问题是什么?请帮忙。
看一下错误:
终端中的
java -version
给了我:
java版“1.8.0_11”
Java(TM)SE运行时环境(版本1.8.0_11-b12)
Java HotSpot(TM)服务器VM(版本25.11-b03,混合模式)
答案 0 :(得分:1)
设置“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
如果它返回刚刚设置的路径,则已成功设置环境变量。如果没有,请确保您正确执行了所有步骤。
答案 1 :(得分:0)
我不确定为什么你需要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为NULL,这就是您收到错误消息的原因。如果你坚持用sudo运行它:
root@Krypton:~# sudo -E java -jar re-sign.jar