При компиляции кода через командную строку, с помощью команды javac, выдается вот такая ошибка
Путь к bin прописан. Вроде все правильно, но все равно выдает ошибку. В чем может быть дело?
insolor
47.2k17 золотых знаков56 серебряных знаков99 бронзовых знаков
задан 3 авг 2017 в 17:24
1
Причина ошибки — заданы некорректные «переменные среды». Соответственно, необходимо указать правильные.
На рабочем столе откройте «Этот компьютер»:
- Нажмите слева вверху «Свойства», затем слева в меню —
«Дополнительные параметры системы». - В открывшейся вкладке «Дополнительно» в самом низу выберите
«Переменные среды». - Откроется содержимое. Нажмите в каждом окне поочередно «Создать».
- В окне «Новая пользовательская переменная» пропишите CLASSPATH.
- Затем в окне «Новая системная переменная» укажите переменную PATH. В
поле «Значение» пропишите директорию к пакету JDK. - Перезагрузите Windows.
Кроме того, чтобы выполнить Javac, вы можете в командной строке прописать полный путь к консоли. К примеру: C:\Program Files\Java\jdk1.8.0_102\bin\javac.exe" MyFile.java
Источник
ответ дан 3 авг 2017 в 17:28
1
Если не помогло, добавление в CLASSPATH, то добавь тот же самый путь в PATH, если там уже что-то есть то добавляй через точку с запятой ‘;’
ответ дан 24 ноя 2017 в 16:50
IvanIvan
111 бронзовый знак
1
Если после добавления путей ничего не поменялось, то сделай копии папок jdk в Programm Files/java и Programm Files(x86)/java
ответ дан 4 фев 2019 в 16:34
Небольшое дополнение, путь в переменных мы прописываем до папочки bin, иначе работать не будет. Пример:
C:\Program Files\Java\jdk1.8.0_201\bin
Перезагружаться скорее всего не понадобиться, но обязательно перезапустите командную строку.
ответ дан 13 апр 2019 в 6:17
Надо перенести JAVA_HOME
в самое начало переменной PATH
, чтобы она была раньше стандартного пути, который прописался при установке:
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
0xdb
51.5k198 золотых знаков59 серебряных знаков239 бронзовых знаков
ответ дан 26 авг 2018 в 10:03
AndrewAndrew
1198 бронзовых знаков
В статье рассматривается процесс установки Java-платформы на Windows и один из способов решения проблемы, когда, несмотря на установленную в системе Java, cmd консоль продолжает выдавать ошибку типа » javac не является внутренней или внешней командой …» при попытке запустить некое подходящее java-приложение.
Всем привет, сегодня рассмотрим некоторые вопросы установки java среды в ОС Windows (я ставлю на 10-ю модель). Установка Java не относится к насущной проблеме при работе в любой операционной системе, причём при некоторых условиях даже НЕ РЕКОМЕНДУЕТСЯ. Однако в моём случае мне понадобилось реализовать небольшой проект из-под Apktool в Windows, который без Java работать просто не будет. Так что ставим.
Установка Java
Для начала проверим, не установлена ли уже какая-то версия. В консоли от имени администратора забиваем:
java -version
Ответ меня пока устраивает — вряд ли кто-то сможет установить java в мою систему без моего ведома. Так что отправляемся на офсайт компании Oracle за подходящей версией. Однако пройдя по указанной мною же ссылке оказалось, что для моей Windows 10 32-бит (х86) современной, 10-й версии уже нет. Так что пришлось довольствоваться 8-й моделью, от обновления которой Oracle официально отказалась. Если у вас 64-х битная версия Windows — вам легче. А я качаю отсюда:
скачать Java для Windows 10 x86
Процедура установки среды одинакова для всех:
- в части страницы со ссылками соглашаемся с условиями использования, активировав пункт Accept License Agreement, после чего все ссылки будут доступны для скачивания
- скачанный exe-шник устанавливаем обычным порядком (всё, что от нас требуется, нажимать по кнопке Next до появления заветной Close):
Перезагружаем Windows. Однако при попытке «пробить» возможности платформы я снова наблюдаю картину, из которой ясно, что что-то здесь не так:
javac не является внутренней или внешней командой, исполняемой программой или внешним файлом
Исправляем ошибку » javac не является внутренней или внешней командой «
- проверьте путь, по которому исполнительные файлы среды java находятся в Windows. Он похож на мой (окно проводника не закрывайте — этот путь нам нужно будет скопировать):
- Вызываем Свойства системы через одну из быстрых команд:
sysdm.cpl
- Во вкладке Дополнительно снизу щёлкнем по кнопке Переменные среды. Появится окно перечислений для вас как пользователя и для системы. Туда и обратимся:
- нам нужна строчка Path. Дважды щёлкнем по ней для просмотра используемых системой путей переменных сред для выполнения запускаемых программ или команд. Однако обнаруживаем, что для исполнительных программ java платформы, путей нет вообще. Нам остаётся добавить их туда: это и есть путь к папке bin из проводника Windows. Щёлкнем дважды по пустой строке в квадранте Системные переменные и с помощью сочетания клавиш Ctrl +V вводим наш путь:
- покидаем настройки ОК-еями и перезагружаемся. Готовенько.
Успехов.
-
Причина ошибки
-
Исправление
Работая с Java кодом через консоль, может появится ошибка: “javac не является внутренней или внешней командой”. Как ее исправить читайте в этой статье.
Причина ошибки
Причина ошибки – заданы некорректные “переменные среды”. Соответственно, необходимо указать правильные.
Исправление
На рабочем столе откройте “Этот компьютер”:
- Нажмите слева вверху “Свойства”, затем слева в меню – “Дополнительные параметры системы”.
- В открывшейся вкладке “Дополнительно” в самом низу выберите “Переменные среды”.
- Откроется содержимое. Нажмите в каждом окне поочередно “Создать”.
- В окне “Новая пользовательская переменная” пропишите CLASSPATH.
- Затем в окне “Новая системная переменная” укажите переменную PATH. В поле “Значение” пропишите директорию к пакету JDK.
- Перезагрузите Windows.
Кроме того, чтобы выполнить Javac, вы можете в командной строке прописать полный путь к консоли. К примеру:
"C:\Program Files\Java\jdk1.8.0_102\bin\javac.exe" MyFile.java
Рекомендую также не забывать про обновления Java. Чтобы их не пропустить, используйте программу Java Update Available.
В данной статье мы рассмотрим, как исправить ошибку «java не является внутренней или внешней командой, исполняемой программой или пакетным файлом.»
Данная ошибка может возникнуть при попытке запуска команды java в командной строке Windows. Первая причина ошибки – отсутствие установленной Java в системе. Вторая причина ошибки – Java установлена, но некорректно настроена. Давайте разберёмся, как это исправить.
Есть два пакета Java – JRE для запуска программ, написанных на Java и JDK – набор инструментов для разработки ПО на Java. Если вам требуется только запускаться программы, вам потребуется лишь JRE, если вы планируете разрабатывать программы – вам потребуется JDK.
Шаг 1. Установка Java
Сначала нужно определить, есть ли у вас в системе установленная Java. Проверьте следующие каталоги в системе:
%PROGRAMFILES%\Java
%PROGRAMFILES(X86)%\Java
Если какой-то из этих каталогов открывается и вы видите Java, значит, она установлена и её требуется настроить.
Если вы не находите подобных каталогов, вам потребуется установить Java. Как скачать, установить и настроить Java, вы можете узнать на этой странице – Установка JDK в Windows
Шаг 2. Настройте Java
Итак, вы установили Java. Теперь её нужно немного настроить, чтобы можно было запускать её из командной строки.
Выполните в командной строке команду:
control /name microsoft.system
Откроется окно «Система». Нажмите на «Дополнительные параметры системы» и в открывшемся окне нажмите кнопку «Переменные среды…»
В окне «Переменные среды» нажмите кнопку «Создать…»
Укажите следующие значения полей:
Имя переменной: JAVA_HOME
Значение переменной: <путь к установленной Java>\bin
Нажмите «OK».
В окне «Переменные среды» выберите переменную «Path» и нажмите кнопку «Изменить»:
В открывшемся окне нажмите кнопку «Создать» и введите значение %JAVA_HOME%\bin
Нажмите «OK».
Шаг 3. Проверка установки
Откройте командную строку (Win+R, введите cmd):
В командной строке введите следующую команду для проверки установленной Java:
java -version
Если вы видите корректный вывод программы наподобие этого, значит, вы корректно установили и настроили Java.
Если же вы снова видите ошибку «java не является внутренней или внешней командой, исполняемой программой или пакетным файлом.», значит, вы некорректно установили или настроили Java. Вернитесь на несколько шагов ранее и проверьте, что вы всё делаете правильно.
Заключение
В данной статье вы научились решать ошибку «java не является внутренней или внешней командой, исполняемой программой или пакетным файлом.» Вы научились скачивать, устанавливать и настраивать Java.
I’m trying to use javac
with the windows command prompt, but it’s not working.
After adding the directory "C:\Program Files\Java\jdk1.6.0_16\bin\"
to the end of the PATH
environment variable, the java
command works fine, but using javac
gives me the following error:
‘javac’ is not recognized as an internal or external command, operable program or batch file.
asked Nov 5, 2009 at 5:26
1
If you added it in the control panel while your command prompt was open, that won’t affect your current command prompt. You’ll need to exit and re-open or simply do:
set "path=%path%;c:\program files\java\jdk1.6.0_16\bin"
By way of checking, execute:
echo %path%
from your command prompt and let us know what it is.
Otherwise, make sure there is a javac in that directory by trying:
"c:\program files\java\jdk1.6.0_16\bin\javac.exe"
from the command prompt. You can also tell which executable (if any) is being used with the command:
for %i in (javac.exe) do @echo %~$PATH:i
This is a neat trick similar to the which
and/or whence
commands in some UNIX-type operating systems.
answered Nov 5, 2009 at 5:29
paxdiablopaxdiablo
856k235 gold badges1581 silver badges1958 bronze badges
5
Windows OS searches the current directory and the directories listed in the PATH environment variable for executable programs. JDK’s programs (such as Java compiler javac.exe and Java runtime java.exe) reside in directory «\bin» (where denotes the JDK installed directory, e.g., C:\Program Files\Java\jdk1.8.0_xx). You need to include the «\bin» directory in the PATH.
To edit the PATH environment variable in Windows XP/Vista/7/8:
-
Control Panel ⇒ System ⇒ Advanced system settings
-
Switch to «Advanced» tab ⇒ Environment Variables
-
In «System Variables», scroll down to select «PATH» ⇒ Edit
(( now read the following 3 times before proceeding, THERE IS NO UNDO ))
In «Variable value» field, INSERT «c:\Program Files\Java\jdk1.8.0_xx\bin» (Replace xx with the upgrade number and VERIFY that this is your JDK’s binary directory!!!) IN FRONT of all the existing directories, followed by a semi-colon (;) which separates the JDK’s binary directory from the rest of the existing directories.
DO NOT DELETE any existing entries; otherwise, some existing applications may not run.
Variable name : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]
answered Apr 6, 2012 at 17:07
mikemike
8716 silver badges2 bronze badges
4
After a long Google, I came to know that javac.exe will be inside JDK(C:\Program Files\Java\jdk(version number)\bin) not inside JRE (C:\Program Files (x86)\Java\jre7\bin) «JRE doesn’t come with a compiler. It(JRE) is simply a java runtime environment. What you need is the Java development kit.» in order to use compiler javac
javac will not work if the path points to bin inside jre folder
In order to use javac in cmd , JDK must be installed in your system…
For javac path
path = C:\Program Files (x86)\Java\jre7\bin this is wrong
path = C:\Program Files\Java\jdk(version number)\bin this is correct
Make sure that «javac.exe» is inside your «C:\Program Files\Java\jdk(version number)\bin»
Don’t get confused with JRE and JDK both are totally different
if you don’t have JDK pls download from this link
https://jdk.java.net/
or
http://www.oracle.com/technetwork/java/javase/downloads/index.html
reference thread for JDK VS JRE What is the difference between JDK and JRE?
answered Dec 31, 2013 at 15:06
TechDogTechDog
3,0391 gold badge24 silver badges30 bronze badges
0
I know this may not be your specific error, but I once had a leading space in my path and java would work but javac would not.
For what it’s worth, I offer the sage advice: «Examine your Path closely».
answered Apr 3, 2012 at 10:31
SamSam
8312 gold badges8 silver badges16 bronze badges
Okay this can not be the case always but many of us have done this mistake in the past and few out of those are still not aware of it, which is, every time you append a path (any path) of any environment variable, you’re likely to hit the space bar right after the «semicolon» (as you normally would, after the «period» while typing in an editor).
This will create a leading space in the path e.g » C:\Program Files\Java\jdk1.6.0\bin» and therefore «javac.exe» won’t be found by the system.
answered Aug 3, 2013 at 7:32
Malay DesaiMalay Desai
5185 silver badges6 bronze badges
0
Try the solutions here: http://techdem.centerkey.com/2009/05/javahome-command-script.html
These are much more robust to change — like when you upgrade the JDK or JRE, since there is no hard coded path.
The quick solution (if you don’t want to read the blog) is
C:\>for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
C:\>set PATH=%PATH%;%JAVA_HOME%
You can then add these lines to a startup/login script.
answered Nov 4, 2013 at 15:10
JasonJason
11.7k9 gold badges66 silver badges82 bronze badges
1
I just had to do this to get this to work on windows 7 64.
Open up a command prompt (cmd.exe) and type:
set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin
Make sure you reopen all running command prompt Windows to get the environment variable updated as well.
eckes
10.1k1 gold badge61 silver badges72 bronze badges
answered Nov 16, 2011 at 3:10
1
Change the folder «jdk1.7.0_45» «jdk1_7_0_60» and update the path in Windows environment. Otherwise, the path ignores the dot at the front which stands for hidden file and so the folder is not displayed in PATH strings.
answered Jun 13, 2014 at 3:21
«;C:\Program Files\Java\jdk1.6.0\bin» sometime you may forget to put semicolon on last existing path.
answered May 9, 2013 at 15:48
I faced the exact same problem that java would work but javac would not on a cmd prompt in Windows 8.
The problem occured because I forgot to remove '>'
at the end of the path name, i.e., it was like this:
C:\Program Files\Java\jdk*\bin>
where it was suppose to be like this:
C:\Program Files\Java\jdk*\bin
Joël Salamin
3,5583 gold badges22 silver badges33 bronze badges
answered Sep 15, 2014 at 11:24
The path will only be set for the administrator account. Therefore it is important to launch command prompt as administrator, if you are not already.
answered Jan 8, 2015 at 15:02
Ensure you don’t allow spaces (white space) in between paths in the Path variable. My problem was I had white space in and I believe Windows treated it as a NULL and didn’t read my path in for Java.
TResponse
3,9607 gold badges43 silver badges63 bronze badges
answered Jan 27, 2015 at 2:05
I was having the same problem posted in this title. Java would work, but javac
would not in the Windows command prompt (cmd.exe
).
For me, it was simply that I had placed a space when adding C:\Program Files\Java\jdk1.8.0\bin
to the end of my %PATH%
environment variable.
Remove the space between the ;
and the next file path.
Siguza
21.4k6 gold badges52 silver badges89 bronze badges
answered Mar 31, 2014 at 15:49
I appreciate this is an old question now but my solution wasn’t an answer on here so posting it in case anyone else tries all the rest.
In my case, a previous install of the Java JRE (in ProgramData/Oracle/Java) had a path variable at the top of my list of path variables. The contents of that «Oracle» path had a java.exe but not a javac.exe.
I added my full JDK path to the top of the list of path variables, ahead of the «Oracle» one, and it then picked up javac.exe as well as java.
answered Sep 27, 2016 at 22:10
NeilNeil
4134 silver badges22 bronze badges
for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
set JAVA_HOME
this solution worked to me
answered Sep 2, 2017 at 6:45
1
When i tried to make the .java to .class the command Javac didnt work. I got it working by going to C:\Program Files (x86)\Java\jdk1.7.0_04\bin and when i was on that directory I typed Javac.exe C\Test\test.java and it made the class with that tactic. Try that out.
answered Jun 12, 2012 at 9:47
Give it as «C:\Program Files\Java\jdk1.6.0_16\bin». Remove the backslash it will work
answered Nov 5, 2009 at 5:31
vallivalli
5,8052 gold badges20 silver badges9 bronze badges
1