"Системе не удается найти файл C:\ProgramData\Oracle\Java\javapath\java.exe"
Я нахожусь на JDK 8u25 на Windows 8, и у меня возникла проблема с моей установкой Java. я могу бежать javac
отлично, но работает java
выдает это сообщение об ошибке:
The system cannot find the file C:\ProgramData\Oracle\Java\javapath\java.exe
Как это исправить?
Я думаю, что проблема связана с моими переменными среды.
Важными переменными, как я их установил, являются:
JAVA_HOME
-C:\Program Files\Java\jdk1.8.0_25
CLASSPATH
-.;%JAVA_HOME%\lib
PATH
-<other paths omitted>;%JAVA_HOME%\bin
И их расширения, если смотреть с set
в cmd:
JAVA_HOME
-C:\Program Files\Java\jdk1.8.0_25
CLASSPATH
-.;C:\Program Files\Java\jdk1.8.0_25\lib;%CLASSPATH%;
PATH
-C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jdk1.6.0_45\bin;<other paths omitted>;C:\Program Files\Java\jdk1.8.0_25\bin
Полный вывод set
можно посмотреть здесь.
22 ответа
У меня похожая проблема, над которой я сейчас работаю. Я не могу сказать, что это решит вашу ошибку, так как могут быть проблемы с другим программным обеспечением (как в моем случае с Eclipse Luna).
Java использует путь, указанный в переменной PATH, то есть
C:\ProgramData\Oracle\Java\javapath
Перейдите в эту папку (ProgramData скрыта, поэтому при необходимости отобразите ее) и щелкните правой кнопкой по символической ссылке java.exe. Вы увидите в поле Target, где он ищет java.exe. Возможно, он указывает на файл java.exe из предыдущей установки jdk1.6.0_45. Либо вставьте сюда новые ярлыки, либо измените настройку PATH, как уже упоминали другие.
Я обнаружил, что установщик Java не изменяет javapath и не обновляет системный путь, по крайней мере при переходе с 1.8 на 1.7. В моем случае изменение ярлыков привело только к проблеме с Eclipse при запуске.
РЕДАКТИРОВАТЬ:----- После игры с ярлыками папок javapath оказывается, что вам нужны символические ссылки, по крайней мере для Eclipse. Смотрите, как создать Windows символическую ссылку Windows.
Вам не нужен ключ / d для ссылки на файл,
mklink java.exe "C:\Program Files\Java\jdk1.8.0_20\bin\java.exe"
mklink javaw.exe "C:\Program Files\Java\jdk1.8.0_20\bin\javaw.exe"
mklink javaws.exe "C:\Program Files\Java\jdk1.8.0_20\bin\javaws.exe"
Теперь это работает для меня.
Почему Oracle сделал такой плохой способ указать на Java, я не знаю. Мы решили эту проблему, создав новую ссылку на JDK
mklink /d C:\ProgramData\Oracle\Java\javapath "C:\Program Files\Java\jdk1.8.0_40\bin\"
То же самое будет работать для JRE, если это все, что требуется.
Это заменяет старые символические ссылки в C:\ProgramData\Oracle\Java\javapath
(если они существовали ранее)
Я имел в PATH
:
C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jdk1.8.0_92\bin;<others omitted>
Я удалил:
C:\ProgramData\Oracle\Java\javapath;
и это решило проблему для меня. java -version
теперь подробно рассказывает о версии Java и т. д.
Это решит все проблемы, связанные с Java и переменными среды:
- Перейдите к диалогу переменных среды Windows.
- В разделе Системные переменные выберите переменную с именем Path. Нажмите Изменить...
Удалите запись, которая выглядит как:
C:\ProgramData\Oracle\Java\javapath
Добавьте путь ваших JDK/JRE
bin
папка.- Не забудьте установить JAVA_HOME.
Я получил ту же ошибку при запуске команды JAVA. Чтобы решить эту проблему, я переместил путь Java в качестве первой записи в пути, и это решило проблему. Пожалуйста, посмотрите на этот скриншот для справки:
ht tps://stackru.com/images/b6d57478ec808f40e6c441f89a6c1c0ed1060a77.png
Обновление переменной среды PATH
Если вы не установите переменную PATH, вам нужно будет указывать полный путь к исполняемому файлу при каждом его запуске, например:
C:\> "C:\Program Files\Java\jdk1.8.0\bin\javac" MyClass.java
Полезно установить постоянную переменную PATH, чтобы она сохранялась после перезагрузки.
Для постоянной установки переменной PATH добавьте полный путь к каталогу jdk1.8.0\bin в переменную PATH. Как правило, этот полный путь выглядит примерно такC:\Program Files\Java\jdk1.8.0\bin
,
Установите переменную PATH в Microsoft Windows следующим образом:
- Нажмите Пуск, затем Панель управления, затем Система.
- Нажмите "Дополнительно", затем "Переменные среды".
Добавьте расположение папки bin для установки JDK в переменную PATH в системных переменных.
Ниже приведено типичное значение для переменной PATH:C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ Program Files \ Java \ jdk1.8.0\bin
Замечания:Переменная окружения PATH представляет собой серию каталогов, разделенных точками с запятой (;) и не чувствительна к регистру. Microsoft Windows ищет программы в каталогах PATH по порядку слева направо.
Вы должны иметь только один каталог bin для JDK в пути за раз. Те, кто следует за первым экземпляром, игнорируются.
Если вы не уверены, куда добавить путь JDK, добавьте его.
Новый путь вступает в силу в каждом новом командном окне, которое вы открываете после установки переменной PATH.
- Удалите все JDK, установленные на вашем компьютере, из Панели управления Java.
- Ищи
C:\ProgramData\Oracle\Java
и удалите этот каталог и все файлы, содержащиеся в. Вы можете сделать это из командной строки, используяrmdir /S C:\ProgramData\Oracle\Java
- Затем найдите C:\ProgramData\Oracle и удалите папку оракула. Вы можете сделать это используя
rmdir /S C:\ProgramData\Oracle
Теперь установите JDK и укажите путь.
Запустите программу. Вы больше не найдете ту же проблему.
Обычно это происходит, когда вы обновляете Java, самый простой способ решить эту проблему - просто удалить JDK, а затем переустановить его. ПРИМЕЧАНИЕ. Это не удаляет путь или путь к классу, поэтому не нужно беспокоиться.
Есть 2 версии JDK в вашем PATH VARIABLE
jdk1.6.0_45
а также jdk1.8.0_25
, Попробуйте удалить первый т.е. jdk1.6.0_45
от PATH
Если вы работаете на корпоративном ПК, который довольно ограничен групповой политикой, это может сработать....
При условии, что
- ваша винда
PATH
включает в себяC:\ProgramData\Oracle\Java\javapath
- у вас установлен JDK
C:\Program Files\Java\jdk1.8.0_60\bin
Затем создайте следующий текстовый файл mklink.bat
и поместите его на рабочий стол:
rem mklink.bat
mklink /d C:\ProgramData\Oracle\Java\javapath "C:\Program Files\Java\jdk1.8.0_60\bin"
pause
Теперь щелкните правой кнопкой мыши и выберите "Запуск от имени администратора". Укажите учетные данные администратора. Сценарий должен сообщить об успехе. Теперь вы можете скомпилировать или запустить Java.
Эта проблема возникает при обновлении с одной версии на другую. Потому что JDK не обновляется автоматически.
Для этого же вы можете изменить переменные среды. В системных переменных найдите PATH и добавьте местоположение jdk bin в начале строки (не в конце). После того, как вы сделали эту проверку в CMD, работают ли "java" и "javac". если это работает, снова перейдите к системным переменным. добавьте "CLASSPATH" в переменную и установите значение " . c: \ Program Files \ Java \ jdk1.8.0_91 \ lib;"
Не беспокойся Просто удалите jdk, а также обновления jdk. Перед переустановкой jdk удалите папку oracle внутри скрытой папки programData в C:\, а затем переустановите. Установите следующее,
JAVA_HOME
CLASSPATH
PATH
JRE_HOME ( is optional)
У меня была также похожая проблема, когда я должен был удалить JDK 1.8 и нуждался в jdk 1.7. Я удалил символические ссылки из javapath, а затем импортировал ярлыки java, javaw, javaws из каталога bin в папку javapath. Тем не менее, я обнаружил некоторые проблемы с правами доступа на корпоративном ноутбуке, когда у меня не было привилегии изменять / обновлять этот каталог. Я дал соответствующее разрешение от администратора и там разрешил его.
Это решит все проблемы, связанные с Java и переменными среды:
Перейдите к диалоговому окну переменных среды Windows. В разделе «Системные переменные» выберите переменную с именем «Путь». Нажмите Редактировать... Удалите запись, которая выглядит так:
C:\ProgramData\Oracle\Java\javapath Добавьте путь к папке bin вашего JDK/JRE.
Не забудьте установить JAVA_HOME.
Мне помогло......:-)
У меня это работало так: На рабочем столе перейдите вSearch->View advanced system settings->Environment Variables
В разделе «Системные переменные» найдите путь и нажмитеEdit
. Нажмите наNew
и добавьте новый путь и переместите его наверх. Чтобы найти свой путь к Java, если вы не знаете, где он установлен, введите cmdwhere javac
c:\ProgramData\Java\javapath
используется для символических ссылок. Конечно, вы можете добавить полный путь к вашему Java Path к %PATH%
, но в равной степени вы можете создать символическую ссылку на путь к указанному выше местоположению.
- открыто
CMD
как администратор - Тип
mklink java.exe
(полный путь к вашему Java.exe), например
mklink java.exe "C:\Program Files\Java\jdk1.8.0_25\bin\java.exe"
Для Новой версии Java находится папка JavaPath.
64-битная ОС
"C:\Program Files \Common Files\Oracle\Java\javapath\"
X86
"C:\Program Files(x86) \Common Files\Oracle\Java\javapath\"
Должно быть две или более переменных PATH. Попробуйте объединить их все в одну, используя точку с запятой (;)
Удалите "C:\ProgramData\Oracle\Java\javapath\java.exe" из переменной Path и добавьте путь к вашему jdk bin. Это сработает.
В моем случае я удалил указанный выше путь и добавил свой путь JDK, который является "C:\Program Files\Java\jdk1.8.0_221\bin"
Я получил то же самое после установки java8 с не разрешенной учетной записи. Чтобы исправить я просто переустановил из учетной записи администратора. Это создало каталог в кавычках со ссылками на файлы Java-файлов.
<>\Common Files\Oracle\Java\javapath\ теперь создается как соединение, символических ссылок больше нет
Столкнулся с той же проблемой при обновлении до OpenJDK17 с JDK8 и получил эту ошибку при выполнении Java-версии в cmd.
Исправлено: перейдите по пути C:\Program Files\Java\jdk-17\bin, скопируйте файлы java.exe и javaw.exe , перейдите по пути C:\ProgramData\Oracle\Java\javapath и удалите существующие ярлыки (раньше у меня была Java 8). это и ярлыки были помещены в java.exe, javaw.exe и javaws.exe.) и вставьте туда эти два файла.