По сей день Java является популярным языком программирования. Возможно, он устарел, но со временем не потерял своей популярности и полезности. Он все еще находится в активной разработке и используется многими разработчиками. Изменения и улучшения языка разрабатываются регулярно, что упрощает компиляцию и запуск приложений на основе Java.
Что такое Java простыми словами?
Java — это широко используемый язык программирования, который можно использовать в различных операционных системах и устройствах. Он имеет множество приложений, включая веб-разработку, мобильные приложения, настольные приложения и программирование на стороне сервера.
Java создает виртуальную машину (ВМ) для запуска кода, написанного на этом языке. Если что-то пойдет не так с данными или кодом, которые обрабатывает виртуальная машина Java, виртуальная машина Java может не запуститься.
Что такое ошибка виртуальной машины Java?
Ошибка виртуальной машины Java, часто называемая ошибкой JVM, — это тип ошибки, которую генерирует виртуальная машина Java. Эта ошибка обычно указывает на то, что компьютер не может прочитать или понять код.
Эта ошибка может возникать по разным причинам, в том числе, когда на компьютере не установлены необходимые обновления или он несовместим с Java. Чрезвычайно важно понимать, как исправить проблему с JVM, если вы столкнулись с ней при использовании компьютера.
За последние несколько дней мы узнали, что некоторые клиенты видят сообщение об ошибке «Не удалось создать виртуальную машину Java». Согласно нашим исследованиям, проблема обычно возникает, когда пользователь пытается запустить программу на основе Java.
Что вызывает ошибку «Не удалось создать виртуальную машину Java»?
Есть несколько условий, которые приведут к этой проблеме:
- Java выполняется с неправильными аргументами или параметрами: Когда вы запускаете самодельную программу или пытаетесь открыть приложение с открытым исходным кодом, известное как вызывающее нестабильность системы.
- Недостаточно глобальной максимальной памяти кучи Java. Одной из наиболее распространенных причин этой проблемы является попытка запустить приложение Java с максимальным размером памяти кучи, превышающим размер, указанный в системной переменной.
- Учетные данные администратора требуются для исполняемого файла и/или программы Java: Это может произойти с приложениями, для правильной работы которых требуется доступ администратора.
Если вы пытаетесь выяснить, как решить проблему «Не удалось создать виртуальную машину Java», эта статья предоставит вам несколько проверенных решений. Ниже приведен список решений, которые другие люди в аналогичном сценарии использовали для решения своих проблем.
Для достижения наилучших результатов попробуйте приведенные ниже решения в том порядке, в котором они предлагаются, пока не найдете то, которое подходит для вашей конкретной ситуации.
Как исправить ошибку виртуальной машины Java?
Вот решения для исправления ошибок виртуальной машины Java:
- Добавление _JAVA_OPTIONS к системным переменным
- Открытие java.exe с правами администратора
- Переустановите Java
- Исправление ошибок с помощью кода
- Редактирование файла Eclipse.ini
- Проверить совместимую версию Java
- Обновите переменные Path и Java Home Environment.
- Проверить аргументы запуска
- Проверить синтаксис
- Проверить выделение памяти
- Увеличьте выделение оперативной памяти для JVM (виртуальная машина Java)
Рассмотрим каждое решение отдельно:
Решение 1. Добавление _JAVA_OPTIONS к системным переменным
Большинство затронутых клиентов смогли решить проблему, изменив системную переменную Java с именем _JAVA OPTIONS на Xmx512M. Это эффективно определяет максимальный размер кучи памяти для Java в глобальном масштабе.
Это устранит любые сообщения об ошибках, так как максимальный размер памяти кучи, определенный в системной переменной, больше, чем максимальный размер памяти кучи, установленный в приложении запуска Java. Несколько клиентов с такой же проблемой заявили, что после выполнения приведенных ниже инструкций проблема была полностью решена.
Чтобы увеличить глобальный максимальный размер памяти кучи, добавьте элемент _JAVA OPTIONS к своим системным переменным следующим образом:
1. Чтобы открыть диалоговое окно «Выполнить», нажмите клавишу Windows + R. Затем, чтобы открыть страницу «Свойства системы», введите sysdm.cpl и нажмите Enter.
2. Перейдите на вкладку «Дополнительно» и выберите «Переменные среды» на странице «Свойства системы».
3. Нажмите «Создать» в поле «Переменные среды» (в разделе «Системные переменные»).
4. Задайте для переменной имя _JAVA OPTIONS и для переменной значение -Xmx512M на панели «Новая системная переменная», затем нажмите «ОК», чтобы сохранить изменения.
5. Чтобы изменения вступили в силу, закройте все ранее открытые окна и перезагрузите компьютер.
6. Откройте программу, которая ранее выдавала ошибку «Не удалось создать виртуальную машину Java», при следующем запуске, чтобы проверить, правильно ли она работает.
Если вы по-прежнему получаете то же сообщение об ошибке при запуске программы, попробуйте добавить путь к корзине Java в переменную среды, которая может быть «%\USER PATH\Java\jdk1.6.0_39\bin».
Решение 2. Открытие java.exe с правами администратора
Несколько человек с той же проблемой смогли решить ее, заставив основной исполняемый файл Java (java.exe) открываться от имени администратора.
После применения этого обновления как к основному исполняемому файлу Java, так и к исполняемому файлу программы, в котором отображается сообщение об ошибке, несколько пользователей сообщили, что проблема решена.
Вот краткое описание всего:
1. Перейдите к месту установки Java в проводнике. Нам нужно будет перейти к основному местоположению исполняемого файла Java (java.exe).
По умолчанию он должен находиться в папке Program Files/Java/*JRE build version*/bin. Точное положение зависит от того, какую среду выполнения Java вы используете.
2. Выберите «Свойства» из контекстного меню, щелкнув правой кнопкой мыши файл java.exe. Затем на вкладке «Совместимость» выберите «Запускать это программное обеспечение от имени администратора» и установите флажок (в разделе «Настройки»). Чтобы сохранить изменения, нажмите Применить.
3. Повторите процедуру, щелкнув правой кнопкой мыши исполняемый файл приложения (вызвавший ошибку): Приложение > Совместимость > Запустить это программное обеспечение от имени администратора.
4. Проверьте, устранено ли уведомление о проблеме, запустив программу.
Недостаточные права администратора также могут вызвать проблемы с виртуальной машиной Java. В результате некоторым пользователям может потребоваться предоставить права администратора Java.
Пользователи могут предоставить доступ администратора Java в Windows 10, выполнив описанные выше действия.
Решение 3. Переустановка Java
В некоторых случаях проблема возникает из-за неправильной установки Java или из-за того, что со временем ее установка была повреждена. В результате, после полного удаления Java, мы переустановим его на этом этапе. Для этого:
1. Чтобы войти в приглашение «Выполнить», нажмите клавишу Windows + R и введите «Appwiz.cpl» или перейдите непосредственно в панель управления.
2. После нажатия Enter появится экран «Программы и компоненты».
3. Пролистайте список установленных приложений на экране «Программы и компоненты», пока не найдете Java.
4. Чтобы удалить его из системы, щелкните его правой кнопкой мыши и выберите Удалить.
5. Сначала удалите основную установку Java, а затем все дополнительные установки Java, включая обновления и другие версии.
6. Перезагрузите компьютер после удаления всего программного обеспечения.
7. После перезагрузки перейдите на эту страницу и загрузите последнюю версию JRE.
8. Проверьте, есть ли проблема.
9. Если проблема не устранена, перейдите сюда, чтобы получить и установить последнюю версию JDK.
10. Если вы уже используете JDK, рассмотрите возможность обновления до другой версии или удаления поставляемой вместе с ним JRE.
Решение 4. Исправьте ошибки с помощью кода
Эта ошибка может возникать по разным причинам, в том числе при наличии определенных ошибок в вашем коде. Мы рассмотрим некоторые из них здесь.
Удалите дефис: некоторые пользователи сообщили, что замена двойного дефиса «-» в их коде на один дефис «-» устранила проблему. Рассмотрим следующий сценарий:
Изменить код:
“sony@sony-VPCEH25EN:~$ java –version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
Unrecognized option: –version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. The program will exit.”
К
“sony@sony-VPCEH25EN:~$ java -version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
Unrecognized option: –version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. The program will exit.”
-Djava.endorsed.dirs=»C:\Program Files\Apache Software Foundation\Tomcat 8.5\endorsed»
Убедитесь, что запись «-vm» добавлена над аргументами vm в вашем файле eclipse.ini. В противном случае env vars выберет JVM V6.
Если вы используете Ubuntu, вы должны знать, что поддерживается только Java 8. В результате будет использован третий подход. Установите старую версию Java после удаления текущей.
Решение 5. Редактирование файла Eclipse.ini
Чтобы решить эту проблему, мы можем внести изменения в файл Eclipes.ini. Мы разбили его на разные проблемы, так как может возникнуть несколько проблем с его настройкой, которые необходимо решить. Выберите тот, который лучше всего подходит для вашей ситуации.
Уменьшено использование памяти
1. С помощью блокнота откройте файл Eclipse.ini в папке Eclipse.
2. Найдите строку вида «-Xmx256m» (это может быть -Xmx1024m или -Xmx 512m).
3. Теперь, в зависимости от оперативной памяти, установленной на вашем компьютере, измените количество по умолчанию на более разумное число и добавьте номер версии. Рассмотрим следующий сценарий:
-Xmx512m
-Dosgi.requiredJavaVersion=1.6
OR
-Xmx512m
-Dosgi.requiredJavaVersion=1.7
OR
-Xmx512m
-Dosgi.requiredJavaVersion=1.8
4. Удалите число «256m» из строки «-launcher.XXMaxPermSize».
5. Проверьте, существует ли проблема.
возиться
1. Удалите из файла следующие строки, если это возможно.
-vm P:\Programs\jdk1.6\bin
2. Также измените следующие строки.
set -Dosgi.requiredJavaVersion=1.5
К
set -Dosgi.requiredJavaVersion=1.6
3. Также поверх строки «-vmargs!» попробуйте добавить следующую строку.
-vm C:\Program Files (x86)\Java\jre6\bin\javaw.exe
4. Также используйте следующую строку для ссылки на JVM.dll.
-vm
C:\Program Files\Java\jre7\bin\client\jvm.dll
5. Замените «-vmargs» на путь к javaw.exe в файле Eclipse. Рассмотрим следующий сценарий:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
-product
com.android.ide.eclipse.adt.package.product
--launcher.XXMaxPermSize
256M
-showsplash
com.android.ide.eclipse.adt.package.product
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
**-vm “c:\Program Files\Java\jdk1.7.0_07\bin\javaw.exe”**
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx768m
-Declipse.buildId=v21.1.0-569685
6. Вы также можете попробовать добавить следующую строку в конце, чтобы посмотреть, поможет ли это.
-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
7. Также посмотрите, решит ли проблему удаление следующих строк из eclipse.ini.
-XX:+UseStringDeduplication
-XX:+UseG1GC
Если проблема не устранена, вы можете попробовать стереть файл eclipse.ini, который, кажется, решил проблему для некоторых людей, но заранее создает резервную копию на случай, если она вам понадобится. Кроме того, перед запуском Java убедитесь, что все энергоемкие приложения закрыты, чтобы обеспечить наличие достаточных ресурсов.
Проверка на повреждение JDK
1. Чтобы запустить приглашение «Выполнить», нажмите Windows + R и введите cmd.
2. Проверьте, возвращает ли следующая команда ошибку.
c:>\ java -version
3. В случае возникновения проблемы полностью переустановите JDK.
Решение 6. Проверьте совместимую версию Java
Когда код компилируется в среде IDE, отображается сообщение Не удалось создать виртуальную машину Java. Это связано с тем, что среда IDE несовместима с версией Java, установленной на вашем компьютере.
Проверьте, какие версии Java поддерживает ваша IDE. Затем определите, какая Java установлена, и сравните ее с поддерживаемой версией. Установите правильную версию, если она еще не установлена.
Решение 7. Обновить переменные пути и домашней среды Java
В Windows 10 параметры Java, установленные в переменных среды, могут привести к ошибке Не удалось создать виртуальную машину Java.
1. Откройте проводник.
2. Скопируйте и вставьте следующее в оболочку проводника адресной строки:::{BB06C0E4-D293-4f75-8A90-CB05B6477EEE}
3. На левой панели выберите Дополнительные параметры системы.
4. Выберите опцию «Дополнительно» в раскрывающемся меню.
5. В разделе «Системные переменные» выберите «Переменные среды», а затем «Создать».
6. Введите _JAVA OPTIONS в поле имени.
7. Введите -Xmx1024M в поле пути/значения.
8. Нажмите ОК.
9. Перезапустите приложение.
Вы также должны дважды проверить, что для Java SDK указан правильный путь.
1. Перейдите к C:\Program Files в проводнике\Java.
2. Откройте папку нужной версии JDK.
3. Путь к папке необходимо скопировать.
4. Переменные в среде (см. предыдущие шаги).
5. Выберите JAVA HOME в меню системных переменных.
6. Выберите Изменить.
7. Нажмите OK после ввода скопированного пути.
Решение 8. Проверьте аргументы запуска
Проверьте свои первоначальные настройки. Хотя у вас может быть установлена правильная версия Java, параметры запуска могут изменить версию, используемую для компиляции. Если вы выполнили обновление Java на месте, скорее всего, параметры запуска все еще относятся к более ранней версии.
Решение 9. Проверьте синтаксис
Убедитесь, что синтаксис правильный для всех введенных вами параметров. Проблема «Не удалось создать виртуальную машину Java» может быть вызвана даже самой незначительной ошибкой. Ищите лишний дефис или неверно указанную версию.
Решение 10. Проверьте выделение памяти
Недостаток памяти, выделенной для использования, является одной из основных причин проблемы Не удалось создать виртуальную машину Java.
1. Откройте проводник.
2. Перейдите в папку C:\Program Files\Java.
3. Откройте папку JDK с установленным номером версии.
4. Найдите и запустите файл jvisualvm.exe.
5. Программное обеспечение предоставляет графический пользовательский интерфейс для управления памятью.
6. Увеличьте объем памяти и повторите попытку.
Решение 11. Увеличьте выделение оперативной памяти для JVM (виртуальная машина Java)
Для внесения этих изменений у вас должны быть права администратора.
1. Нажмите одновременно клавишу Windows и кнопку Pause Break.
2. В появившемся новом окне выберите Дополнительные параметры системы.
3. Нажмите кнопку «Переменные среды» в нижней части появившегося окна «Свойства системы».
4. Появится окно переменных среды. Нажмите кнопку «Создать» в разделе «Системные переменные».
5. Появится окно для новой системной переменной. Заполните пропуски соответствующими значениями.
- _JAVA OPTIONS — это имя переменной.
- -Xmx512M — это переменное значение.
6. Нажмите ОК.
6. Нажмите кнопку OK в разделе «Переменные среды».
Заключение
Настройка среды разработки может занять много времени. Прежде чем вы сможете написать или скомпилировать код, вам нужно будет настроить множество вещей и выполнить множество предварительных условий. Эти проблемы не специфичны для Java; каждый язык имеет свой собственный набор предварительных требований, которые необходимо выполнить, прежде чем его можно будет использовать.