在 Linux 的 Windows 子系统上安装 Oracle JDK

新手上路,请多包涵

当尝试在支持 bash 的最新 Windows 10 版本上使用 Oracle JDK 的 Linux 版本时,每当尝试调用 java 二进制文件时,我都会遇到提示挂起的问题。

键入甚至像 java -version 这样简单的东西都会挂起,我必须终止进程才能恢复控制。

有人有这个工作吗?

原文由 Saurabh Mishra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 429
2 个回答

我想澄清一下,截至 2016 年 12 月 9 日,您肯定可以在 Windows 10 的 Ubuntu Bash 上安装 Java 8,并且 @Karl Horton 是正确的。

您需要安装解压缩 sudo apt-get install unzip

将此脚本复制到 bash for windows 会话中的某个位置并使其可执行(chmod +x 文件名)。如果您不使用基于命令行的编辑器,例如 vim,那么您将需要处理 windows 行尾。您可以使用 dos2unix 或您喜欢的处理方式。我只是将它粘贴到使用 vim 的文件中。

  #!/bin/bash

set -ex

# UPDATE THESE URLs
export JDK_URL=http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
export UNLIMITED_STRENGTH_URL=http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip

# Download Oracle Java 8 accepting the license
wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \
${JDK_URL}
# Extract the archive
tar -xzvf jdk-*.tar.gz
# clean up the tar
rm -fr jdk-*.tar.gz
# mk the jvm dir
sudo mkdir -p /usr/lib/jvm
# move the server jre
sudo mv jdk1.8* /usr/lib/jvm/oracle_jdk8

# install unlimited strength policy
wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \
${UNLIMITED_STRENGTH_URL}
unzip jce_policy-8.zip
mv UnlimitedJCEPolicyJDK8/local_policy.jar /usr/lib/jvm/oracle_jdk8/jre/lib/security/
mv UnlimitedJCEPolicyJDK8/US_export_policy.jar /usr/lib/jvm/oracle_jdk8/jre/lib/security/

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/oracle_jdk8/jre/bin/java 2000
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/oracle_jdk8/bin/javac 2000

sudo echo "export J2SDKDIR=/usr/lib/jvm/oracle_jdk8
export J2REDIR=/usr/lib/jvm/oracle_jdk8/jre
export PATH=$PATH:/usr/lib/jvm/oracle_jdk8/bin:/usr/lib/jvm/oracle_jdk8/db/bin:/usr/lib/jvm/oracle_jdk8/jre/bin
export JAVA_HOME=/usr/lib/jvm/oracle_jdk8
export DERBY_HOME=/usr/lib/jvm/oracle_jdk8/db" | sudo tee -a /etc/profile.d/oraclejdk.sh

现在我可以执行以下操作

fieldju@DESKTOP-LTL6MIC:~$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

当您阅读本文时,上述脚本中的链接和版本可能已经过时,因此 请访问 http://www.oracle.com/technetwork/java/javase/downloads/index.html 接受许可证,以便他们的 js 可以让您复制新的 URL,您应该一切顺利。

原文由 fieldju 发布,翻译遵循 CC BY-SA 3.0 许可协议

正如@noah-david 所建议的那样,2017 年 8 月的解决方案似乎更简单。

我能够从 “WebUpd8”团队存储库 安装 Oracle JDK 8。

说明。添加存储库:

 sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

安装:

 sudo apt-get install oracle-java8-installer
sudo apt install oracle-java8-set-default

安装后

costin@amanta-win:/mnt/c/work$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

costin@amanta-win:/mnt/c/work$ which java
/usr/bin/java

costin@amanta-win:/mnt/c/work$ uname -a
Linux amanta-win 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014
  x86_64 x86_64 x86_64 GNU/Linux

原文由 raisercostin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题