2016-10-25 4 views
0

Dev env: Scala 2.11.8, JDK 1.8.112 x64, Windows 7 x64.Как Scala приобретает среду JVM?

  • обновленного JDK до последней версии JDK 1.8.112
  • неустановленного Scala 2.11.7 и установлен Scala 2.11.8
  • перезагрузки

Проблема: Scala все еще видит предыдущий JDK 1.8.101 вместо новый 1.8.112.

C:\Users\myUserName>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) 

C:\Users\myUserName>scala 
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101). 
Type in expressions for evaluation. Or try :help. 

scala> System.getProperty("java.version") 
res3: String = 1.8.0_101 

Причиной является новый JDK установлен в C:\Program Files\Java\jdk1.8.0_112 в то время как предыдущая JDK в C:\Program Files\Java\jdk8. JAVA_HOME = C: \ Program Files \ Java \ jdk8. Поэтому я полагаю, поэтому Scala видит предыдущую версию. Тем не менее, PATH

C:\Users\myUserName>PATH 
PATH=C:\ProgramData\Oracle\Java\javapath; 
... etc... 
C:\Program Files (x86)\scala\bin;C:\Program Files\Java\jdk8\bin; 

C: \ ProgramData \ Oracle \ Java \ javapath содержит java.exe, который исходит от новейшей версии JDK. Вот почему java -версия в командной строке показывает последний JDK.

Вопрос: В Windows, как сделать последний JDK официальным JDK? И вообще, какая рекомендуемая практика обновления JDK в Windows?

+4

Ваш набор 'JAVA_HOME'? Ваша версия Scala, как правило, не имеет никакого отношения к тому, как ваша ОС находит свою версию Java. –

+0

Каков вывод команды 'set'? Был ли «1.8.0.101» на пути первым? – Rao

+0

Привет, спасибо за помощь. Я редактировал вопрос, чтобы дать более подробную информацию о переменных JAVA_HOME и PATH env. Я думаю, что проблема в основном заключается в моем незнакомом с средой Windows. – Polymerase

ответ

0

Команда java выполняет java.exe файл из первой папки переменных в PATH среды, где находится этот файл.

С другой стороны, команда scala выполняет командный файл scala.bat и этот файл устанавливает среду java для scala по переменной JAVA_HOME, если она существует.

Проблема заключается в том, что в почти в каждой системе является файл java.exe в многих различных папках - (.. Я е от Adobe или JetBrains продуктов) некоторые из них могут быть подпапки других программных папок, которые вы установили ранее.

Название файла такое же, но версии могут быть (и в большинстве случаев -) разные.

А рекомендуемая практика для обновления? Установите и молите (Oracle itself has problems with it) или установите, а затем вручную настройте каждое приложение, которое зависит от Java.