在ubuntu上安装Open JDK 8时遇到问题:
$ sudo apt-get install openjdk-8-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package openjdk-8-jdk
多数是因为apt更新源的问题,更新一下源就ok了
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
多个jdk切换方法
首先我们看下系统已经安装的或在用的JDK
$ update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
现在安装jdk8之后变成
$ update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
下面我们用“update-alternatives --config java” 指令切换默认jdk
$ 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-openjdk-amd64/jre/bin/java 1071 auto mode
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
* 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 manual mode
Press enter to keep the current choice[*], or type selection number:
选择你要使用的JDK:比如1然后回车java就ok了,同上方法将javac、javap、javadoc更换即可:
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config javadoc
SSL error when connecting to the Jack server. Try 'jack-diagnose'
报错详细打印
FAILED: setup-jack-server/bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8-XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 4.11.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.32.CANDIDATE.jar 4.32.CANDIDATE || exit 47 )"Jackserveralready installedin"/home/jerry/.jack-server"Launching Jackserverjava -XX:MaxJavaStackTraceDepth=-1-Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8-XX:+TieredCompilation -cp /home/jerry/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncherJackserverfailedto(re)start, try'jack-diagnose'orsee JackserverlogSSL errorwhenconnectingtothe Jackserver. Try'jack-diagnose'SSL errorwhenconnectingtothe Jackserver. Try'jack-diagnose'可以看到主要报错的地方为SSL error when connecting to the Jack server. Try 'jack-diagnose'
3. 解决方法
服务器安装的是openjdk8,输入以下命令:
sudo gedit /etc/java-8-openjdk/security/java.security
将jdk.tls.disabledAlgorithms中的TLSv1, TLSv1.1去掉即可,如下图
另外在编译前,要输入以下命令:
export LC_ALL=C用于去除所有本地化的设置,让命令能正确执行。
SSL error when connecting to the Jack server. Try 'jack-diagnose'
运行jack-diagnose
提示端口被占用的信息
Port XXXX is used by another process (pid=), please ensure to free the port or change port configuration in XXX
端口占用就换个端口吧。
更改~/.jack-settings
SERVER_PORT_SERVICE=27755
SERVER_PORT_ADMIN=27765
同步更改~/.jack-server/config.properties
jack.server.service.port=27755
jack.server.admin.port=27765
更改config.properties的权限为600
chmod 600 ~/.jack-server/config.properties
继续编译,依然是报这个错误。 重新更改端口,错误依旧,因此错误原因可能不是这个。
编辑/etc/java-8-openjdk/security/java.security
找到TLSv1这行,把TLSv1, TLSv1.1,删除后保存
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
切换到Android编译源码项目目录:prebuilts/sdk/tools/
运行:./jack-admin kill-server ./jack-admin start-server
之后重新编译。 错误解决。