При попытке использовать версию Oracle JDK для Linux в последней сборке Windows 10, имеющей поддержку bash, у меня возникает проблема с зависанием подсказки при попытке вызвать java
двоичный файл.
При вводе даже такой простой java -version
вещи, как зависает, я должен прервать процесс, чтобы восстановить управление.
У кого-нибудь это еще работает?
java
linux
windows
windows-subsystem-for-linux
Саураб Мишра
источник
источник
Ответы:
Я хотел уточнить, что с 9 декабря 2016 года вы, безусловно, можете установить Java 8 на Ubuntu Bash для Windows 10 и что @Karl Horton верен.
Вам нужно будет установить unzip
sudo apt-get install unzip
Скопируйте этот скрипт где-нибудь в вашем сеансе bash для Windows и сделайте его исполняемым (chmod + x filename). Если вы не используете редактор на основе командной строки, такой как 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-адреса, и все будет в порядке.
источник
unzip
требуется для этого скрипта (так как он не установлен по умолчанию)sudo: unable to resolve host DESKTOP-6PMR0AI
на компьютере друзей.Похоже, что в августе 2017 года решение было проще, как было предложено @ noah-david.
Мне удалось установить Oracle JDK 8 из репозитория команды «WebUpd8» .
Инструкции . Чтобы добавить репозиторий:
Установить:
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
источник
sudo add-apt-repository ppa:webupd8team/java
Должно быть, я чего-то упускаю ... все, что я сделал, это:
sudo apt-get update sudo apt-get install default-jdk java -version
вывод:
java version "1.7.0_131" OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-0ubuntu0.14.04.2) OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
источник
sudo apt-get install default-jdk
Windows 10 18.04 с Ubuntu 18.04, и он установил OpenJDK 11.Я использовал сценарий, предоставленный @fieldju, но он пропустил некоторые вещи, от которых зависит сценарий, а также копирование / вставка содержимого приводит к появлению окончаний строк / возвратов каретки (
/r
) Windows, которые необходимо будет заменить на возвраты Linux. Кроме того, я обнаружил, что намного проще сначала загрузить необходимые zip-архивы и поместить их вместе со сценарием. Вот полный список того, что я сделал:bash
введите,sudo apt-get install zip unzip
чтобы убедиться, что на вашейbash
консоли установлен unzip / zipbash
ПРИМЕЧАНИЕ: не меняйте имя файла, чтобы убедиться, что он работает со скриптомjava_install_predownloaded.sh
в той же папке вместе с zip-файлами:Сценарий:
#!/bin/bash # Extract the archive tar -xzvf 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 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, которая предполагает, что zip-архивы уже загружены и находятся в той же папке, что и этот
.sh
файл.Поскольку в файле есть символы возврата каретки Windows, вам необходимо убедиться, что они заменены, поэтому
bash
перейдите туда, где вы сохранили,java_install_predownloaded.sh
и выполните следующую команду:sed 's/^M$//' java_install_predownloaded.sh > java_install_predownloaded_unix.sh
Затем я также выполнил следующее, чтобы убедиться, что в окнах определенно нет окончаний строк:
sed 's/\r$//' java_install_predownloaded_unix.sh > java_install_predownloaded_unix_final.sh
java_install_predownloaded_unix_final.sh
будет находиться в папке , которая является нашей «очищено» версией без окончаний окна линии, так что вам просто нужно выполнить./java_install_predownloaded_unix_final.sh
вbash
и наблюдать волшебство произошло. Привет, Престо, теперь на вашем экземпляре bash в Windows установлена Java!источник
Шаги, которые я сделал для новой установки Oracle JDK 8 на моем Bash (Windows 10):
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Принять лицензии
Готово! Проверьте свою версию Java, используя
java -version
и ожидаемый результат должен быть примерно таким:java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
PS На момент написания этой статьи была выпущена стабильная версия Oracle 9 JDK, вы, вероятно, могли бы настроить шаг 4 выше.
Ссылка: https://poweruphosting.com/blog/install-java-ubuntu/
источник
Похоже, установка JDK8 не работает в настоящее время на сборке № 14316 WSL. Но попытка установить JDK7 у меня сработала. Изучаю пределы этой установки в настоящее время и буду в курсе. Идея пришла отсюда: https://github.com/Microsoft/BashOnWindows/issues/196
источник
Я подтверждаю, что Oracle JDK Version 8u102, x64 для Linux можно установить нормально на Windows 10 Insider Build 14905, выпущенную 16 августа 2016 года.
Скачать можно отсюда после принятия лицензии
C:\>systeminfo | findstr /B /C:"OS Name" /C:"OS Version" OS Name: Microsoft Windows 10 Pro Insider Preview OS Version: 10.0.14905 N/A Build 14905
Я выполнил инструкции здесь: wikiHow Oracle Java Install
$ java -version java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) $ javac -version javac 1.8.0_102
У меня еще не было возможности сильно напрячь эту установку, но это лучше, чем предыдущие зависания.
источник
Это сработало для меня. Хотя мне не нравится добавлять эти странные репозитории. Восстание Linux? Было бы здорово, если бы Microsoft исправила это.
источник
Многие ответы рекомендуют установить Linux JDK, даже если у них есть отличный Windows JDK. Красота WSL заключается в том, что вам не нужно делать подобные вещи, поскольку файловые системы совместимы. Пока вы принимаете во внимание расширения файлов (описанные ниже), вам нужно будет установить оба только для нишевых ситуаций.
Простой метод
Вы можете сделать это очень просто, добавив следующую строку кода в свой
.bashrc
файл, предполагая, что ваши переменные среды Windows установлены правильно и WSL установлен:# Shared environment variables export JAVA_HOME=/mnt/d/Java/jdk11.0.4_10
Просто убедитесь, что вы изменили каталог, чтобы указать на вашу папку JDK. В моем случае это то,
D:\Java\jdk11.0.4_10
что в WSL/mnt/d/Java/jdk11.0.4_10
Кроме того, поскольку вы используете двоичные файлы Windows, вы должны указать тип файла при запуске из оболочки WSL bash:
пример
Вызов Windows JDK из:
CMD
:WSL:
Примечание. WSL требует,
.exe
поскольку это двоичный файл Windows. При использовании Linux-дистрибутива OpenJDK расширение не требуется.источник
У меня была такая же проблема, но я решаю ее одной командой:
затем запустите эти 3 команды:
sudo apt install default-jre sudo apt install openjdk-11-jre-headless sudo apt install openjdk-8-jre-headless
источник
Кажется, проблема возникла с версией java oracle, я загрузил версию openJDK, и теперь она работает
источник
он может работать для сборки Insider Preview 14905, но зависает в Windows 10 Pro, сборка 14393. Хорошая часть проблемы заключается в том, что Microsoft использует Ubuntu 14.0.4. 14.10 или новее, вероятно, лучше поддержат Java 8.
источник