Lineage error a jni error has occurred please check your installation and try again

В статье описаны причины ошибки "A JNI error has occurred, please check your installation and try again", представлены способы её решения.

При запуске какого-либо кода, написанного на Java, программист может получить сообщение об ошибке с текстом «A JNI error has occurred, please check your installation and try again». Обычно причиной ошибки выступает разница в версии компилятора и среды выполнения, из-за чего происходит некорректная интерпретация и выполнение имеющегося кода. Ниже разберём, в чём суть данной ошибки, как её исправить, а также отдельно укажем, как решить данную ошибку при запуске игры Minecraft.

  • Что такое JVM, JNI и JRE?
  • Причина проблемы A JNI error has occurred, please check your installation and try again
  • Установите одинаковую версию JRE и JDK
  • Правильно настройте переменные среды для Java
  • Ошибка JNI error has occurred при запуске Майнкрафт
  • Заключение

Что такое JVM, JNI и JRE?

Как известно, программы, написанные на «Java», компилируются в байтовый код, который распознаётся виртуальной машиной Ява, называемой «JVM» (Java Virtual Machine). JVM по своей сути является компьютерным симулятором, и при запуске программы написанной на Java, распознаёт инструкции байтового кода, и переводит их в машинные инструкции собственной системы.

JVM должна обеспечивать удобный способ доступа к ресурсам системы – файлам, сетевым соединениям, видеокарте и другим компонентам. Механизмы доступа к этим ресурсам напрямую зависят от системы, в которой работает JVM. Для обеспечения своей работы виртуальная машина использует собственный интерфейс Java, называемый «JNI» (Java Native Interface).

Методы Java, использующие JNI для доступа к службам, квалифицируются термином «native». Квалификатор «native» сообщает виртуальной машине, что код для выполнения при вызове данного метода присутствует во внешней библиотеке. JVM ищет конкретный вызов библиотеки, который необходимо выполнить, на основе полного имени пути к методу и его аргументам. Существует специальное соглашение об именах, позволяющее сопоставить метод с конкретной ссылкой на внешнюю библиотеку.

Данный механизм JNI позволяет программам на Java кодировать имя переносимого метода. И скомпилированный в Виндовс код Java будет отлично запускаться на компьютерах под управлением Линукс или Мак.

Как мы уже писали выше, Java имеет собственные библиотеки для обеспечения базового взаимодействия с системой на уровне чтения-записи файлов, создания сетевых подключений и вывода изображения на экран. Они распространяются с JVM как часть среды выполнения Ява, известные как «JRE» (Java Runtime Environment), независимо от того, является ли она автономной JRE или включена в Java Development Kit (JDK).

Причина проблемы A JNI error has occurred, please check your installation and try again

Текст данной ошибки переводится как «Произошла ошибки INI, пожалуйста, проверьте вашу инсталляцию и попробуйте вновь». Данная ошибка, получаемая при запуске программы на JVM, указывает на проблему с запуском кода, связанного с собственным методом.

Причины проблемы могут быть следующими:

  • Повреждена библиотека JDK / JRE, вследствие чего она не может быть загружена, и JVM не сможет выполнить код;
  • Повреждён функционал операционной системы, вследствие чего последняя не в состоянии удовлетворить системный вызов, созданный нативным кодом;
  • Имеются различия в номерах версий JRE (среда выполнения Java) и JDK (Java Development Kit), что также может вызывать ошибку JNI. Различия в номерах версий приведут к тому, что JVM откажется запускать код, потому что он был скомпилирован для совместимости с версией Java, превышающей максимальную версию, поддерживаемую JVM. Проще говоря, код может быть скомпилирован на одной версии Ява (например, 10), а пытается запускаться с помощью версии Ява 9;
  • Также проблема может быть вызвана при попытке запустить файл.jar через командную строку, например с помощью команды java -jar File.jar.

Давайте разберём способы, позволяющие устранить ошибку JNI на вашем ПК.

Это может помочь: ошибка Out of memory — как устранить.

Установите одинаковую версию JRE и JDK

Исправить ошибку «A JNI error has occurred» поможет обновление JRE и JDK до актуальных синхронных версий. Необходимо убедится в их одинаковой версии, для чего вызовите системную строку (нажмите Win+R, введите там cmd и нажмите ввод), и наберите там:

java -version и нажмите ввод.

Затем наберите: javac –version

Полученные результаты должны совпадать. Если они они не совпадают, то это сигнализирует о несоответствии версии компилятора и среды выполнения Java. Для решения проблемы рекомендуем установить однотипные и актуальные версии компилятора и среды выполнения, после чего вновь используйте команды «java -version» и «javac -version» для проверки, возвращают ли данные команды один и тот же номер версии.

Если версии синхронны, тогда ваш код Java необходимо будет скомпилировать с помощью компилятора новой версии. После этого ошибка «A JNI error has occurred, please check your installation» может быть устранена.

Правильно настройте переменные среды для Java

Для исправления ошибки «A JNI error has occurred» может понадобится настроить переменные среды для Java. Выполните следующее:

  1. Нажмите на Win+R;
  2. В открывшемся окошке введите sysdm.cpl и нажмите на ввод;
  3. Откроется окно свойств системы. Выберите вкладку «Дополнительно»;
  4. Далее внизу кликните на кнопку «Переменные среды»;
  5. В нижнем окне выберите переменную «Path», после чего нажмите чуть ниже на кнопку «Изменить»;
    Выберите «Path», и нажмите на «Изменить»
  6. Здесь вы ищите строку, в которой прописан путь установки вашего JDK. Например, он может хранится по пути C:ProgramFilesJavajdk-13.0.1bin;
  7. Если этой записи в перечне ваших переменных нет, вы можете добавить её, нажав на «Создать» справа. Если же вы еще не установили JDK, вы можете скачать её с https://www.oracle.com/java/technologies/downloads/;
  8. Когда вы найдёте данную строку, используйте кнопку «Вверх» пока запись не окажется в самой верхней части;
  9. Нажмите внизу на «Ок» для сохранения результата, и перезагрузите ваш ПК. Ошибка «JNI error has occurred» будет исправлена.

Смотрите на данном англоязычном виде способ решения возникшей проблемы:

Ошибка JNI error has occurred при запуске Майнкрафт

Некоторые пользователи, установившие обновление Minecraft 1.17 («Caves and Cliffs: Part 1»), сообщают, что получают сообщение об ошибке «A JNI error has occurred, please check your installation and try again» или «Java exception».

Если вы один из таких пользователей, тогда вам нет повода для беспокойства. «Ошибка JNI», которая начала появляться с последним обновлением Minecraft 1.17, может быть исправлена ​​путем установки Java 16 или более поздних версий для своей работы. Это подтверждается многими сообщениями от игроков, у которых возникла рассматриваемая в статье проблема.

Читайте также: GLFW error 65542: WGL the driver does not appear to support OpenGL – как решить?

Заключение

В нашем материале была рассмотрена суть ошибки «A JNI error has occurred, please check your installation and try again», и перечислены способы для её решения. Обычно причиной ошибки является несоответствие версии JRE и JDK, которые приводят к появлению рассматриваемой ошибки. Рекомендуем обновить версию данных инструментов до самой синхронной и актуальной, после чего декомпилировать ваш код. Обычно после этого ошибка будет устранена, и вы сможете использовать рабочую версию вашего кода для необходимых вам задач.

Содержание

  1. A JNI error has occurred, please check your installation and try again — как исправить?
  2. Что такое JVM, JNI и JRE?
  3. Причина проблемы A JNI error has occurred, please check your installation and try again
  4. Установите одинаковую версию JRE и JDK
  5. Правильно настройте переменные среды для Java
  6. A JNI error has occurred, please check your installation and try again при компиляции java программы
  7. Как исправить ошибки при запуске и компиляции?
  8. Выводы
  9. “Error: A JNI error has occurred, please check your installation …” – How to fix it!
  10. JNI Error in Windows CMD
  11. JNI Error when starting a Minecraft Server
  12. JNI Error in Minecraft TLauncher
  13. Java JNI error message still appears?
  14. Как исправить ошибку «Произошла ошибка JNI» в Minecraft
  15. Как исправить ошибку JNI Error has Occurred в Minecraft
  16. Произошла ошибка JNI, проверьте свою установку и повторите попытку в Eclipse x86 Windows 8.1

A JNI error has occurred, please check your installation and try again — как исправить?

При запуске какого-либо кода, написанного на Java, программист может получить сообщение об ошибке с текстом «A JNI error has occurred, please check your installation and try again». Обычно причиной ошибки выступает разница в версии компилятора и среды выполнения, из-за чего происходит некорректная интерпретация и выполнение имеющегося кода. Ниже разберём, в чём суть данной ошибки, как её исправить, а также отдельно укажем, как решить данную ошибку при запуске игры Minecraft.

Что такое JVM, JNI и JRE?

Как известно, программы, написанные на «Java», компилируются в байтовый код, который распознаётся виртуальной машиной Ява, называемой «JVM» (Java Virtual Machine). JVM по своей сути является компьютерным симулятором, и при запуске программы написанной на Java, распознаёт инструкции байтового кода, и переводит их в машинные инструкции собственной системы.

JVM должна обеспечивать удобный способ доступа к ресурсам системы – файлам, сетевым соединениям, видеокарте и другим компонентам. Механизмы доступа к этим ресурсам напрямую зависят от системы, в которой работает JVM. Для обеспечения своей работы виртуальная машина использует собственный интерфейс Java, называемый «JNI» (Java Native Interface).

Методы Java, использующие JNI для доступа к службам, квалифицируются термином «native». Квалификатор «native» сообщает виртуальной машине, что код для выполнения при вызове данного метода присутствует во внешней библиотеке. JVM ищет конкретный вызов библиотеки, который необходимо выполнить, на основе полного имени пути к методу и его аргументам. Существует специальное соглашение об именах, позволяющее сопоставить метод с конкретной ссылкой на внешнюю библиотеку.

Данный механизм JNI позволяет программам на Java кодировать имя переносимого метода. И скомпилированный в Виндовс код Java будет отлично запускаться на компьютерах под управлением Линукс или Мак.

Как мы уже писали выше, Java имеет собственные библиотеки для обеспечения базового взаимодействия с системой на уровне чтения-записи файлов, создания сетевых подключений и вывода изображения на экран. Они распространяются с JVM как часть среды выполнения Ява, известные как «JRE» (Java Runtime Environment), независимо от того, является ли она автономной JRE или включена в Java Development Kit (JDK).

Причина проблемы A JNI error has occurred, please check your installation and try again

Текст данной ошибки переводится как «Произошла ошибки INI, пожалуйста, проверьте вашу инсталляцию и попробуйте вновь». Данная ошибка, получаемая при запуске программы на JVM, указывает на проблему с запуском кода, связанного с собственным методом.

Причины проблемы могут быть следующими:

  • Повреждена библиотека JDK / JRE, вследствие чего она не может быть загружена, и JVM не сможет выполнить код;
  • Повреждён функционал операционной системы, вследствие чего последняя не в состоянии удовлетворить системный вызов, созданный нативным кодом;
  • Имеются различия в номерах версий JRE (среда выполнения Java) и JDK (Java Development Kit), что также может вызывать ошибку JNI. Различия в номерах версий приведут к тому, что JVM откажется запускать код, потому что он был скомпилирован для совместимости с версией Java, превышающей максимальную версию, поддерживаемую JVM. Проще говоря, код может быть скомпилирован на одной версии Ява (например, 10), а пытается запускаться с помощью версии Ява 9;
  • Также проблема может быть вызвана при попытке запустить файл.jar через командную строку, например с помощью команды java -jar File.jar.

Давайте разберём способы, позволяющие устранить ошибку JNI на вашем ПК.

Установите одинаковую версию JRE и JDK

Исправить ошибку «A JNI error has occurred» поможет обновление JRE и JDK до актуальных синхронных версий. Необходимо убедится в их одинаковой версии, для чего вызовите системную строку (нажмите Win+R, введите там cmd и нажмите ввод), и наберите там:

java -version и нажмите ввод.

Затем наберите: javac –version

Полученные результаты должны совпадать. Если они они не совпадают, то это сигнализирует о несоответствии версии компилятора и среды выполнения Java. Для решения проблемы рекомендуем установить однотипные и актуальные версии компилятора и среды выполнения, после чего вновь используйте команды «java -version» и «javac -version» для проверки, возвращают ли данные команды один и тот же номер версии.

Если версии синхронны, тогда ваш код Java необходимо будет скомпилировать с помощью компилятора новой версии. После этого ошибка «A JNI error has occurred, please check your installation» может быть устранена.

Правильно настройте переменные среды для Java

Для исправления ошибки «A JNI error has occurred» может понадобится настроить переменные среды для Java. Выполните следующее:

Источник

A JNI error has occurred, please check your installation and try again при компиляции java программы

Многие новички, которые изучают программирование на Java при компиляции могут столкнуться с ошибкой «A JNI error has occurred, please check your installation and try again». Ошибка выскакивает даже если запускать совсем простой код типа «hello world!» как в примере ниже.

Пример простого кода Hello World!

Обычно компиляция проходит, но созданный класс не интерпретируется. У большинства пользователей ошибка появляется из-за следующих двух моментов:

  1. Неправильные пути в переменных средах;
  2. Вы компилируете файл более новой версией Java, а запустить пытаетесь на более ранней. Например компилировали при помощи Java 10, а запускаете на Java 9.

Как исправить ошибки при запуске и компиляции?

Первое, что следует проверить – пути в переменных средах. По списку первым например стоит путь:

«C:Program Files (x86)Common FilesOracleJavajavapath»

А в конце каталог до jdk:

Операционная система компьютера находит екзешник «java.exe» и первым делом смотрит в «..javapath» и останавливает поиск. Вам нужен файл что лежит в «…jdkbin». В переменных средах сначала нужно поставить jdkbin, а потом уже javapath. В конечном результате путь должен быть примерно такой:

PATH=C:Program Filesjdkbin;C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program Files (x86)QuickTimeQTSystem

Во втором случае всё еще проще. Если вы компилируете используя более позднюю версию Java Runtime 54, то соответственно и запуск нужно производить в аналогичной версии. Сама строчка «hello has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 53.0» как раз говорит нам об этом. Проверить это можно вбив фразу в тот же Гугл Переводчик.

Compiled by a more recent version of the Java Runtime

Выводы

Как видим с ошибкой» A JNI error has occurred, please check your installation and try again» при компиляции Java программы в основном сталкиваются новички. Решить проблему можно проверив версии Java при компиляции и запуске файлов программы. А так же просмотреть корректность путей к «jdkbin» и «javapath». Напишите в комментариях помогло ли вам решение и удалось ли запустить вашу первую программу.

Источник

“Error: A JNI error has occurred, please check your installation …” – How to fix it!

You have encountered this JNI Error error message? Don’t panic! The problem can usually be solved quite quickly – and here you can find out how.

Have you encountered this error message or popup?

Error: A JNI error has occurred, please check your installation and try again

The problem comes from the fact that your JRE (Java Runtime Enviroment), that is your installed Java version and your JDK (Java Development Kit) do not work together correctly. Advertisements

Now there are several possible solutions for you. Just choose the scenario that applies to you:

JNI Error in Windows CMD

The problem can occur if you want to call a .jar file via command line (Windows CMD), e.g. via the command java -jar File.jar or if you have compiled your program with Eclipse before.

To fix the error, you need to adjust the environment variables for Java.

  • To do this, type “environment variable” in your Windows search and open the “Edit System Environment Variables” item. In this window you click on “Environment variables…”.

System properties – screenshot

  • The “Environment variables” window opens. There you select the variable “Path” in the lower window “System variables” and click on “Edit…”.

Environment variables – screenshot

  • There you look for the line where the installation path of your Java JDK is stored. In my case this is under C:Program FilesJavajdk-13.0.1bin.

If you don’t have a Java JDK installed yet, you can download and install the .exe installation file (“x64 Installer”) here. Advertisements

  • If you do not have this entry, you can add it by clicking the “New” button.

Edit environment variables – screenshot

  • Select the line with the Java JDK and click on “Move up” until the entry is at the top. Done!
  • Now you have to close and reopen the Windows-CMD once and the error should be fixed.

JNI Error when starting a Minecraft Server

If you try to start your Minecraft server via the official server.jar (error occurs since version 1.17), you may get this error message:

  • Download the latest Java JDK version as .exe file (“x64 Installer”) and install by clicking on the .jar file
  • Now the server should start again

JNI Error in Minecraft TLauncher

This error message can also appear when launching the Minecraft TLauncher.

  • Download the latest Java JDK version as .zip archive (“x64 Compressed Archive”) (see screenshot)

Advertisements Java JDK Download Page

  • Right-click on the downloaded file and click “Extract here”.
  • Copy the unzipped folder to the directory C:Program FilesJava
  • Launch your Minecraft TLauncher and click on the gear in the bottom right corner
  • Click at “Java path” on “Browse…” and choose C:Program FilesJavajdkXbinjavaw.exe (replace the X by the name of your JDK folder).
  • Save everything – now the game should start again

Advertisements

Java JNI error message still appears?

  • Restart your computer
  • Uninstall old Java versions under Control Panel > Programs > Programs and Features and install the latest Java JRE and Java SDK.

I hope that you were able to fix the JNI error with the help of this post. If this is still not the case, feel free to write me a comment.

Источник

Как исправить ошибку «Произошла ошибка JNI» в Minecraft

С таким количеством движущихся частей в Minecraft вы неизбежно будете время от времени сталкиваться с проблемой. Иногда бывает очень сложно понять, что вызывает проблему и как ее можно исправить. Если вы сталкиваетесь с сообщением «Произошла ошибка JNI», это довольно просто преодолеть. Вот как позаботиться об этой ошибке.

Как исправить ошибку JNI Error has Occurred в Minecraft

Если вы получаете сообщение об ошибке «Произошла ошибка JNI», это означает, что вам нужно обновить Java. С добавлением обновления «Пещеры и скалы» для правильной работы Minecraft Java Edition теперь требуется последняя версия Java.

Чтобы загрузить последнюю версию Java, перейдите на страницу загрузчика Java и выберите платформу ПК. ты используешь. Установите соответствующий файл установщика и запустите его. Это очень простой процесс, поэтому не беспокойтесь о каких-либо неожиданных шагах. После установки последней версии попробуйте снова запустить Minecraft Java Edition, и все должно работать гладко.

Как упоминалось выше, это не было проблемой, которая раньше была применима к Minecraft Java Edition, потому что она использовалась для поддержки более старых версий Java. Будь то изменение, внесенное для того, чтобы все могли получить наилучшие возможности, или какая-то новая функция в игре больше не может работать в этих предыдущих версиях, это может быть раздражающим, но необходимым шагом для загрузки вашего обновления Java.

Источник

Произошла ошибка JNI, проверьте свою установку и повторите попытку в Eclipse x86 Windows 8.1

Приведенный выше код отлично работает на ноутбуке моего друга и вызывает эту ошибку на моем ноутбуке. Я запустил код на Eclipse Juno с использованием Java 7. Я также протестировал и запустил множество java-программ на своем ноутбуке, и все они работают хорошо. Это единственная программа, которая выдает такую ​​ошибку. Это мой последний годовой проект, и он мне нужен для работы на моем ноутбуке, буду благодарен всем, кто поможет

У меня была эта проблема некоторое время, но теперь я понял это.

Оказывается, Java JDK 12 имеет как JRE, так и JDK внутри папки bin Java 12 JDK. (Я всегда считал, что JRE и JDK — это разные приложения, но оказалось, что все изменилось)

Моя проблема заключалась в том, что на моем компьютере была установлена ​​Java JDK 12.

В то же время на моем компьютере была установлена ​​Java 8 (JRE).

Итак, мой компьютер запутался.

С моей настройкой среды командной строки для запуска команд Java и Javac:

Я набрал следующие команды:

// это дало мне Java 8

После этого я набрал:

// это дало мне Java 12

Другими словами, моя программа компилируется с Java 12, а я пытаюсь запустить с Java 8.

Чтобы решить эту проблему, я удалил Java 8 JRE со своего компьютера.

Вернулся в командную строку, чтобы проверить, возвращают ли «java -version» и «javac -version» один и тот же номер версии, и да, он возвращает Java 12.

Попытался снова перекомпилировать мою программу и запустить ее. Это сработало!!

Это сработало! Эврика !!

Краткий ответ: щелкните правой кнопкой мыши класс, содержащий основной метод. Щелкните «Запуск от имени». Щелкните «Приложение Java». Сочетание клавиш: Shift + Alt + XJ (удерживая Shift и Alt, нажмите X; затем отпустите Shift и Alt и нажмите J).

Длинный ответ: честно говоря, я не уверен на 100%, почему возникает эта проблема. Это могло быть из-за использования другого jdk. Я столкнулся с той же ошибкой. Решение оказалось проще, чем я предполагал. Я привык запускать свой код с помощью Ctrl + F11. Но когда я запустил его как java-приложение (как я описал в «кратком ответе»), проблема была решена. Не уверен, решает ли это и чужие проблемы, но попробовать стоит. 🙂

Запуск jar-файла из командной строки:

Я получил информацию, которая прояснила проблему:

main/Main has been compiled by a more recent version of the Java Runtime

В этом случае jar был скомпилирован с версией более новой, чем поддерживает jre.

Ошибка: произошла ошибка JNI, проверьте свою установку и повторите попытку в Eclipse.

Решение: проверьте имя вашего пакета, так как оно может конфликтовать с именем пакета в java. Просто измените имя пакета, чтобы решить вашу проблему. 🙂

У меня были аналогичные проблемы при использовании java в начале имени пакета, например java.jem.pc

Проверьте вывод вашей консоли, я получил:

В моем случае проблема была вызвана версией JDK . Чтобы решить эту проблему, я предлагаю зайти в ваш файл pom и проверить 1.7 .

После этого проверьте версию java в вашем cmd (windows) или терминале (OSX или LINUX), набрав: java -version .

Сравните версию, показанную в командной строке терминала с той, что у вас в файле pom. Убедитесь, что они одинаковые. Затем снова запустите свой проект.

Привет, я столкнулся с аналогичной проблемой с проектом в IntelliJ с зависимостями Maven.

Я решил, что изменил область зависимостей с предоставленной на компиляцию.

IntelliJ :

File > project structure > Modules > Dependencies > scope (provide to compile)

Вы можете сначала проверить консоль, чтобы увидеть фактическое сообщение об ошибке, а затем продолжить поиск ответов для этой ошибки.

Моя консоль показывает ошибку NoClassDefFound для класса jcommander. Ваша ошибка, вероятно, будет отличаться от моей. Причина моей ошибки в том, что класса jcommander нет в моем репозитории M2, поэтому мне просто нужно добавить эту зависимость в свой pom.xml. Вы можете проверить, все ли зависимости классов объявлены и добавлены в текущую конфигурацию и сборку проекта.

Я решил это, изменив свой «Уровень соответствия компилятора». В Eclipse:

Окно -> Настройки -> Java -> Компилятор

Я тоже столкнулся с той же проблемой. Глядя на консоль, которая говорит

решение является:

Check your package name of your project.

Надеюсь, ваша проблема будет решена. Если нет, распечатайте трассировку консоли, чтобы отследить первопричину.

Это может произойти, если версия JDK отличается.

попробуйте это с помощью maven:

в разделе build-> plugins:

Я обнаружил, что добавление этих строк кода в файл pom.xml проекта maven решает для меня аналогичные проблемы: —

Проверьте свою консоль. В нем говорится о проблеме java.lang.SecurityException. Измените свое «имя пакета». Я изменил имя своего пакета с «java.assessment» на «assesment», и у меня это сработало. Если кто-то знает первопричину, дайте мне знать.

ВОЗМОЖНОЕ РЕШЕНИЕ Если ни одно из этих решений не помогло вам, попробуйте это . Наконец-то я получил работу, удалив две папки «.metadata» и «.recommenders» в папке рабочей области. Вы можете найти путь к папке своего рабочего пространства, щелкнув «Файл»> «Переключить рабочее пространство»> «Другое» на панели инструментов приложения Eclipse.

Теперь я полный новичок, плачущий, пока не получил степень SE в Государственном университете Сан-Хосе. Так что я просто делюсь тем, что сработало для меня, не зная, почему именно. Не знаю, какой вред или головная боль, да еще нужно ли было удалить обе вышеупомянутые папки. Но, в конце концов, у меня это сработало, и, похоже, приложение все равно воссоздает свежие версии этих папок.

У меня возникла та же проблема, но в моем случае это было связано с настройками конфигурации в IntelliJ IDEA.

Несмотря на то, что SDK проекта (Файл -> Структура проекта) был установлен на Java 11, JRE в Конфигурациях запуска / отладки (Выполнить -> Изменить конфигурации) был установлен на Java 8. После изменения на Java 11 он работал как очарование.

Я столкнулся с аналогичной проблемой и нашел решение в названии пакета. Я сохранил имя пакета как java.basics. В консоли я получил подсказку, так как в ней было четко указано имя Запрещенного пакета. Итак, я изменил имя пакета, и это сработало.

отредактируйте «.classpath» и включите ниже тег

это может решить вашу проблему.

Надеюсь, это поможет кому-то другому. Я страдал от этого, когда работал над проектом несколько лет назад, а затем несколько дней назад работа в новом проекте начала терпеть неудачу. Я нашел этот пост и пытался вспомнить, что я изменил в своем проекте, а затем я вспомнил, что я изменил свой maven pom и удалил запись для maven-jar-plugin. Когда вы создаете jar-файл, предназначенный для выполнения, вам необходимо включить его, чтобы определенные записи были записаны в манифест. Я открыл старый проект, скопировал эту запись (с некоторыми изменениями в названии проекта), и это сработало.

Я думаю, это произошло потому, что имя вашего класса совпадает с именем другого класса в JDK. Помогите eclipse определить, какой из них вы пытаетесь запустить, выбрав пакет, в котором находится ваш класс. Переходим к запуску конфигурации, выбираем проект и основной класс .

Когда вы нажимаете кнопку поиска, чтобы выбрать основной класс, вы найдете варианты с тем же именем, но с другим пакетом , выберите свой класс.

В моей консоли не было информации, поэтому я отправил мне поиск дополнительных решений и нашел их — уникальные для решений, представленных здесь. Я столкнулся с этим, когда Eclipse Oxygen пытался запустить старую сборку Ant в проекте.

Причина 1 Я настроил Eclipse для использования внешней установки Ant, которая была версии 1.10.2, в которой, по-видимому, были классы, скомпилированные с JDK 9. В Eclipse я получил ошибку JNI, описанную выше (запуск сборки Ant в командной строке дал мне известна ошибка «неподдерживаемая версия major.minor» — Java, которую я использовал в системе, была JDK 8).

Решением был откат к встроенной версии Ant для Eclipse 1.10.1. Я проверил, что это правильное решение, загрузив Ant 1.10.1 отдельно и перенастроив Eclipse для внешнего использования новой версии 1.10.1, и она по-прежнему работала.

Причина 2 Это также может произойти, если у вас неправильно настроены параметры среды выполнения Ant в настройках Eclipse. В зависимости от версии Ant, которую вы используете, вам нужно будет добавить tools.jar из соответствующего JDK в путь к классам, используемый для Ant Runtime (домашние записи). В частности, без правильной настройки Eclipse при запуске целевой Ant будет жаловаться на то, что версия JRE меньше конкретной требуемой версии.

По сути, «правильная конфигурация» означает выравнивание каждого из элементов конфигурации в Eclipse для запуска Ant таким образом, чтобы все они работали вместе. Это включает запись Ant Runtime Home (должна указывать на версию Ant, совместимую с выбранным вами JDK — вы не можете запускать Ant с JDK 8, когда он был скомпилирован с JDK 9); указание того, tools.jar что принадлежит JDK, с которым вы хотите запустить Ant, в настройках Ant Runtime; и, наконец, установка среды JRE вашего сценария сборки на JDK, с которым вы хотите запустить Ant в конфигурации внешних инструментов. Необходимо согласовать все 3 этих параметра, чтобы избежать ошибки, описанной выше. Вам также необходимо учитывать атрибуты, используемые в вашем javac , чтобы убедиться, что используемый вами JDK может выполняться в соответствии с вашими указаниями (например, JDK 7 не может компилировать код с использованием исходной и целевой версии 8).

Более того, если вы действительно просто пытаетесь запустить сценарий сборки Ant для компиляции кода в более старый JDK (например, менее 8 для Oxygen), эта статья помогла получить доступ к запуску Ant для более старого JDK . Существуют замены плагина Ant для нескольких версий Eclipse, инструкции краткие, и важно получить правильную версию плагина для вашего конкретного Eclipse.

Или, проще говоря, вы можете использовать это очень хорошее решение для своей устаревшей компиляции, которая не требует замены вашего плагина Eclipse, а вместо этого меняет javac тег в вашем скрипте сборки (при использовании последней версии JDK).

Источник

В этой статье

  • Войдите, чтобы написать ответ
  • Как глубже вникнуть или систематизировать знания по java?
  • There are not JREs installed. Как исправить?
  • Solution 2: Remove Broken System Path Variables for Java
  • Tags:
  • Правильно настройте переменные среды для Java
  • JNI Error when starting a Minecraft Server
  • Почему BufferedReader в ServerSocket возвращает null?
  • Как определить класс у переменной?
  • Какова политика oracle к желающим получить сертификат от них из России?
  • Почему не работает регистрация клиента в Android приложении?
  • Причина проблемы A JNI error has occurred, please check your installation and try again
  • Установите одинаковую версию JRE и JDK
  • Update 2 (June 11)
  • Как удалить ранее переданный кнопки TelegramBot?
  • Update 3 (June 18)
  • Update 4 (July 16)
  • Want to work for PiunikaWeb and enjoy best-in-industry compensation & benefits? You’ll be glad to know we’re hiring experienced candidates.
  • Могу ли я параллельно изучать языки программирования?
  • Update 1 (June 10)
  • Почему не происходит заполнение переменных из потока?
  • Как конвертировать даты из html-формы через Spring в MySQL?
  • Минуточку внимания
  • JNI Error in Minecraft TLauncher

Войдите, чтобы написать ответ

Войти через центр авторизации

<хедер class=»section-хедер»>

Похожие вопросы

  • java
    • Java

    • +1 ещё

    Средний

Как глубже вникнуть или систематизировать знания по java?

  • 1 подписчик
  • 7 часов назад
  • 62 просмотра

ответа
2

  • java
    • Java

    • +1 ещё

    Простой

  • There are not JREs installed. Как исправить?

    • 1 подписчик
    • 17 часов назад
    • 38 просмотров

    ответов
    0

  • java
    • Java

    Средний

  • Solution 2: Remove Broken System Path Variables for Java

    If the first method doesn’t work, then this “a JNI error has occurred Minecraft” error is due to a corrupted system path variable for Java.

    In this case, you can fix the problem by visiting the System Properties screen and modifying the environment variables in a way that removes the Java environment variables.

    To do so, here is the guide:

    • Step 1: Press the Win + R key to open the Run dialog box. Then type sysdm.cpl in it and press Enter.
    • Step 2; In the System Properties window, switch to the Advanced tab, and then click on the Environment Variables button.
    • Step 3: Once enter the System Variables window, under the System variables section, select Path and click on the Edit button.
    • Step 4: In the next window, find the environment variables for Java. Then click it and click Delete.

    After removing the offending environment variable, restart your PC, then start Minecraft again and see if the “a JNI error has occurred ” issue is fixed.

    Click to rate this post![Total: 26 Average: 2.3]Share if you like          

    Tags:

    Правильно настройте переменные среды для Java

    Для исправления ошибки «A JNI error has occurred» может понадобится настроить переменные среды для Java. Выполните следующее:

    1. Нажмите на Win+R;
    2. В открывшемся окошке введите sysdm.cpl и нажмите на ввод;
      Команда sysdm
    3. Откроется окно свойств системы. Выберите вкладку «Дополнительно»;
      Вкладка Дополнительно
    4. Далее внизу кликните на кнопку «Переменные среды»;
      Кнопка
    5. В нижнем окне выберите переменную «Path», после чего нажмите чуть ниже на кнопку «Изменить»;
      Иллюстрация изменения пути
      Выберите “Path”, и нажмите на “Изменить”
    6. Здесь вы ищите строку, в которой прописан путь установки вашего JDK. Например, он может хранится по пути C:ProgramFilesJavajdk-13.0.1bin;
      Настройки пути JDK
    7. Если этой записи в перечне ваших переменных нет, вы можете добавить её, нажав на «Создать» справа. Если же вы еще не установили JDK, вы можете скачать её с https://www.oracle.com/java/technologies/downloads/;
      Кнопка
    8. Когда вы найдёте данную строку, используйте кнопку «Вверх» пока запись не окажется в самой верхней части;
    9. Нажмите внизу на «Ок» для сохранения результата, и перезагрузите ваш ПК. Ошибка «JNI error has occurred» будет исправлена.

    Смотрите на данном англоязычном виде способ решения возникшей проблемы:

    JNI Error when starting a Minecraft Server

    If you try to start your Minecraft server via the official server.jar (error occurs since version 1.17), you may get this error message:

    JNI Error Popup
    Java Virtual Machine Launcher: JNI Error Popup

    • Download the latest Java JDK version as .exe file (“x64 Installer”) and install by clicking on the .jar file
    • Now the server should start again

    Почему BufferedReader в ServerSocket возвращает null?

    • 1 подписчик
    • 17 часов назад
    • 19 просмотров

    ответов
    0

  • java
    • Java

    Простой

  • Как определить класс у переменной?

    • 1 подписчик
    • 18 часов назад
    • 92 просмотра

    ответ
    1

  • java
    • Java

    Простой

  • Какова политика oracle к желающим получить сертификат от них из России?

    • 1 подписчик
    • 19 часов назад
    • 42 просмотра

    ответ
    1

  • android
    • Android

    • +3 ещё

    Средний

  • Почему не работает регистрация клиента в Android приложении?

    • 1 подписчик
    • вчера
    • 48 просмотров

    ответов
    0

  • java
    • Java

    • +2 ещё

    Простой

  • Причина проблемы A JNI error has occurred, please check your installation and try again

    Текст данной ошибки переводится как «Произошла ошибки INI, пожалуйста, проверьте вашу инсталляцию и попробуйте вновь». Данная ошибка, получаемая при запуске программы на JVM, указывает на проблему с запуском кода, связанного с собственным методом.

    Причины проблемы могут быть следующими:

    • Повреждена библиотека JDK / JRE, вследствие чего она не может быть загружена, и JVM не сможет выполнить код;
    • Повреждён функционал операционной системы, вследствие чего последняя не в состоянии удовлетворить системный вызов, созданный нативным кодом;
    • Имеются различия в номерах версий JRE (среда выполнения Java) и JDK (Java Development Kit), что также может вызывать ошибку JNI. Различия в номерах версий приведут к тому, что JVM откажется запускать код, потому что он был скомпилирован для совместимости с версией Java, превышающей максимальную версию, поддерживаемую JVM. Проще говоря, код может быть скомпилирован на одной версии Ява (например, 10), а пытается запускаться с помощью версии Ява 9;
    • Также проблема может быть вызвана при попытке запустить файл.jar через командную строку, например с помощью команды java -jar File.jar.

    Давайте разберём способы, позволяющие устранить ошибку JNI на вашем ПК.

    Это может помочь: ошибка Out of memory – как устранить.

    Установите одинаковую версию JRE и JDK

    Исправить ошибку «A JNI error has occurred» поможет обновление JRE и JDK до актуальных синхронных версий. Необходимо убедится в их одинаковой версии, для чего вызовите системную строку (нажмите Win+R, введите там cmd и нажмите ввод), и наберите там:

    java -version и нажмите ввод.

    Команда для определения версии java

    Затем наберите: javac –version

    Полученные результаты должны совпадать. Если они они не совпадают, то это сигнализирует о несоответствии версии компилятора и среды выполнения Java. Для решения проблемы рекомендуем установить однотипные и актуальные версии компилятора и среды выполнения, после чего вновь используйте команды «java -version» и «javac -version» для проверки, возвращают ли данные команды один и тот же номер версии.

    Если версии синхронны, тогда ваш код Java необходимо будет скомпилировать с помощью компилятора новой версии. После этого ошибка «A JNI error has occurred, please check your installation» может быть устранена.

    Update 2 (June 11)

    Going by users reports, those of you facing the issue on Linux, here’s a tip for you:

    FIX: FOR LINUX USERS ONLY!!

    MAKE SURE TO UPDATE

    sudo apt-get update

    THEN

    sudo apt search jdk

    “find openjdk version 17” OR just do this command

    sudo apt install openjdk-17-jdk

    enjoy the new 1.17 update yall

    In case, openjdk-17-jdk does not appear on entering “sudo apt search jdk” and on entering sudo apt install openjdk-17-jdk it says “Unable to locate package openjdk-17-jdk” you will be required to add another repository first. Here’s how a user puts it:

    sudo add-apt-repository ppa:linuxuprising/java

    sudo apt-get update

    Optional: sudo apt search jdk

    I found openjdk-16-jdk so I installed that; I didn’t see openjdk-17-jdk, but 16 works

    sudo apt install openjdk-16-jdk

    Как удалить ранее переданный кнопки TelegramBot?

    • 2 подписчика
    • вчера
    • 36 просмотров

    ответ
    1

  • java
    • Java

    • +1 ещё

    Простой

  • Update 3 (June 18)

    An individual has highlighted some important information surrounding the availability of Java 16 on Mojang’s support website. Check out the information below:

    Unlike Java 8, there’s no single provider of downloads for Java 16. Some major ones are:

    – OpenJDK (from Oracle): https://jdk.java.net/16/
    – Oracle: https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
    Oracle was historically the primary provider of Java, but their free downloads are now only intended for developers. Their standard releases are now paid and cost several hundred dollars per year. OpenJDK downloads are not included in this.

    – Amazon Corretto (from Amazon): https://docs.aws.amazon.com/corretto/latest/corretto-16-ug/downloads-list.html
    – Zulu (from Azul): https://www.azul.com/downloads/#download-openjdk
    – AdoptOpenJDK (from Eclipse Foundation, sponsored by many organizations including Amazon, IBM, and Microsoft): https://adoptopenjdk.net/?variant=openjdk16&jvmVariant=hotspot
    I would personally recommend AdoptOpenJDK, but the choice here is up to you.

    Update 4 (July 16)

    For those of you facing error or crash while loading the resource packs in the Java Edition, the official troubleshooting page suggests you to uninstall and re-install them. Following are the details:

    If resource packs or mods fail to load or cause your game to crash, you will need to uninstall and reinstall them one at a time to find which one is the cause.
    Tip: If you know the order in which you installed them, you can uninstall them in reverse order, testing after each uninstall.

    Since resource packs and mods are not created by Mojang Studios, we do not offer support for them. If you need further assistance, contact the author of the mod or resource pack. 

    If this did not solve your issue, see Pink and Black Checkered Boxes Appear Where Textures Should Be.

    PiunikaWeb started as purely an investigative tech journalism website with main focus on ‘breaking’ or ‘exclusive’ news. In no time, our stories got picked up by the likes of Forbes, Foxnews, Gizmodo, TechCrunch, Engadget, The Verge, Macrumors, and many others. Want to know more about us? Head here.

    ×

    Want to work for PiunikaWeb and enjoy best-in-industry compensation & benefits? You’ll be glad to know we’re hiring experienced candidates.

    Tags :
    A java exception has occurred , A java exception has occurred Minecraft , a JNI error has occurred Minecraft , a jni error has occurred minecraft server , java update Minecraft , JNI error Minecraft , JNI error Minecraft 1.17 , jni error minecraft server 1.17 Share :

    • Facebook
    • Twitter
    • Pinterest
    • Linkedin
    • Email

    [Update: One Fusion too] Motorola Moto G 5G Android 11 update begins rolling out

      Previous article

    Могу ли я параллельно изучать языки программирования?

    • 1 подписчик
    • вчера
    • 125 просмотров

    ответа
    4

  • android
    • Android

    • +1 ещё

    Простой

  • Update 1 (June 10)

    Going by the bug page for “A JNI error has occurred, please check your installation and try again” at Mojang support, here’s something you need to know:

    This error happens when you launch the client (the game) or server (the .jar) without Java 16 in 21w19 and above. Minecraft has was updated to use Java 16 as per the 21w19a changelog:

    Minecraft now uses a more recent version of Java. If you are using a default setup the Launcher will download and install the correct version. If you are using a custom Java setup or a third-party launcher, you will need to ensure that your Java installation is version 16 or above.

    And here’s how you can resolve the problem:

    To fix this issue, download the AdoptOpenJDK and follow the steps below for the client or server.

    Client: Make sure that your launcher is running Java 16. To do so, change the Java executable runtime to target “javaw.exe” in C:Program FilesJavajdk-16.0.1binjavaw.exe or where you installed Java 16. Contact your launcher maintainers if you cannot switch or do not know how to switch to Java 16.

    Server: If you are running a server on your computer, make sure that AdoptOpenJDK is running the .jar. To make sure on Windows 10, the file properties should look like this:

    Try uninstalling Java 8 and restart your computer to make sure you are running Java 16. If you are running a server with a host, contact the host.

    If none if this works, please contact Community Support.

    Почему не происходит заполнение переменных из потока?

    • 1 подписчик
    • вчера
    • 88 просмотров

    ответ
    1

  • html
    • HTML

    • +3 ещё

    Средний

  • Как конвертировать даты из html-формы через Spring в MySQL?

    • 1 подписчик
    • вчера
    • 45 просмотров

    ответ
    1

  • Показать ещёЗагружается…
  • Вакансии с Хабр Карьеры

    Java программист

    Sportmaster Lab
    •Волгоград
    от 200 000 до 350 000 ₽

    Java developer

    Сбер
    •Иннополис
    от 70 000 ₽

    Java Developer

    Ligolab

    До 5 000 $
    Ещё вакансии

    Заказы с Хабр Фриланса

    Доработать программу на Phyton

    18 окт. 2022, в 15:55
    5000 руб./за проект

    Разработка задания (node.js)

    18 окт. 2022, в 15:46
    10 руб./за проект

    Сделать Webview Android из веб приложения

    18 окт. 2022, в 15:23
    5000 руб./за проект
    Ещё заказы

    Минуточку внимания

    Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями

    Зарегистрироваться

    Самое интересное за 24 часа

    • Можно ли заменить в ноутбуке экран на другой, с более высоким разрешением?

      • 2 подписчика
      • 1 ответ
    • Можно ли удалить рекламу Yandex с сайта?

      • 4 подписчика
      • 3 ответа
    • Как вывести общее количество товаров магазина Woocommerce в записи/на странице с помощью шорткода?

      • 2 подписчика
      • 0 ответов
    • Как исправить эту ошибку docker-compose?

      • 1 подписчик
      • 1 ответ
    • Как скачивать с защищенных каналов Telegram?

      • 8 подписчиков
      • 1 ответ
    • Какие есть сервисы кэширования для сайта?

      • 7 подписчиков
      • 1 ответ
    • Как Отправить сгенерированный пдф файл на электронную почту?

      • 2 подписчика
      • 1 ответ
    • Как дать роли права на чтение только со slave?

      • 2 подписчика
      • 1 ответ
    • Как изменить код таким образом, чтобы промисы выполнялись поочередно?

      • 2 подписчика
      • 1 ответ
    • Как сгрупировать значения multiselect инпута в подмассивы если в форме несколько multiselect инпутов с одним названием tags[]?

      • 2 подписчика
      • 1 ответ
    • © Habr
    • О сервисе
    • Обратная связь
    • Блог

    JNI Error in Minecraft TLauncher

    This error message can also appear when launching the Minecraft TLauncher.

    • Download the latest Java JDK version as .zip archive (“x64 Compressed Archive”) (see screenshot)

    AdvertisementsJava JDK Download Page
    Java JDK Download Page

    • Right-click on the downloaded file and click “Extract here”.
    • Copy the unzipped folder to the directory C:Program FilesJava
    • Launch your Minecraft TLauncher and click on the gear in the bottom right corner
    • Click at “Java path” on “Browse…” and choose C:Program FilesJavajdkXbinjavaw.exe (replace the X by the name of your JDK folder).
    • Save everything – now the game should start again

    Advertisements

    Источники

    • https://qna.habr.com/q/1043512
    • https://www.9minecraft.net/how-to-fix-a-jni-error-has-occurred-in-minecraft/
    • https://SdelaiComp.ru/interesno/a-jni-error-has-occurred.html
    • https://webdeasy.de/en/error-a-jni-error-has-occured-how-to-fix-this-java-error/
    • https://piunikaweb.com/2021/07/16/minecraft-jni-error-java-exception-1-17-update/

    [свернуть]

    При запуске какого-либо кода, написанного на Java, программист может получить сообщение об ошибке с текстом «A JNI error has occurred, please check your installation and try again». Обычно причиной ошибки выступает разница в версии компилятора и среды выполнения, из-за чего происходит некорректная интерпретация и выполнение имеющегося кода. Ниже разберём, в чём суть данной ошибки, как её исправить, а также отдельно укажем, как решить данную ошибку при запуске игры Minecraft.

    Что такое JVM, JNI и JRE?

    Как известно, программы, написанные на «Java», компилируются в байтовый код, который распознаётся виртуальной машиной Ява, называемой «JVM» (Java Virtual Machine). JVM по своей сути является компьютерным симулятором, и при запуске программы написанной на Java, распознаёт инструкции байтового кода, и переводит их в машинные инструкции собственной системы.

    JVM должна обеспечивать удобный способ доступа к ресурсам системы – файлам, сетевым соединениям, видеокарте и другим компонентам. Механизмы доступа к этим ресурсам напрямую зависят от системы, в которой работает JVM. Для обеспечения своей работы виртуальная машина использует собственный интерфейс Java, называемый «JNI» (Java Native Interface).

    Методы Java, использующие JNI для доступа к службам, квалифицируются термином «native». Квалификатор «native» сообщает виртуальной машине, что код для выполнения при вызове данного метода присутствует во внешней библиотеке. JVM ищет конкретный вызов библиотеки, который необходимо выполнить, на основе полного имени пути к методу и его аргументам. Существует специальное соглашение об именах, позволяющее сопоставить метод с конкретной ссылкой на внешнюю библиотеку.

    Данный механизм JNI позволяет программам на Java кодировать имя переносимого метода. И скомпилированный в Виндовс код Java будет отлично запускаться на компьютерах под управлением Линукс или Мак.

    Как мы уже писали выше, Java имеет собственные библиотеки для обеспечения базового взаимодействия с системой на уровне чтения-записи файлов, создания сетевых подключений и вывода изображения на экран. Они распространяются с JVM как часть среды выполнения Ява, известные как «JRE» (Java Runtime Environment), независимо от того, является ли она автономной JRE или включена в Java Development Kit (JDK).

    Причина проблемы A JNI error has occurred, please check your installation and try again

    Текст данной ошибки переводится как «Произошла ошибки INI, пожалуйста, проверьте вашу инсталляцию и попробуйте вновь». Данная ошибка, получаемая при запуске программы на JVM, указывает на проблему с запуском кода, связанного с собственным методом.

    Причины проблемы могут быть следующими:

    • Повреждена библиотека JDK / JRE, вследствие чего она не может быть загружена, и JVM не сможет выполнить код;
    • Повреждён функционал операционной системы, вследствие чего последняя не в состоянии удовлетворить системный вызов, созданный нативным кодом;
    • Имеются различия в номерах версий JRE (среда выполнения Java) и JDK (Java Development Kit), что также может вызывать ошибку JNI. Различия в номерах версий приведут к тому, что JVM откажется запускать код, потому что он был скомпилирован для совместимости с версией Java, превышающей максимальную версию, поддерживаемую JVM. Проще говоря, код может быть скомпилирован на одной версии Ява (например, 10), а пытается запускаться с помощью версии Ява 9;
    • Также проблема может быть вызвана при попытке запустить файл.jar через командную строку, например с помощью команды java -jar File.jar.

    Давайте разберём способы, позволяющие устранить ошибку JNI на вашем ПК.

    Установите одинаковую версию JRE и JDK

    Исправить ошибку «A JNI error has occurred» поможет обновление JRE и JDK до актуальных синхронных версий. Необходимо убедится в их одинаковой версии, для чего вызовите системную строку (нажмите Win+R, введите там cmd и нажмите ввод), и наберите там:

    java -version и нажмите ввод.

    Затем наберите: javac –version

    Полученные результаты должны совпадать. Если они они не совпадают, то это сигнализирует о несоответствии версии компилятора и среды выполнения Java. Для решения проблемы рекомендуем установить однотипные и актуальные версии компилятора и среды выполнения, после чего вновь используйте команды «java -version» и «javac -version» для проверки, возвращают ли данные команды один и тот же номер версии.

    Если версии синхронны, тогда ваш код Java необходимо будет скомпилировать с помощью компилятора новой версии. После этого ошибка «A JNI error has occurred, please check your installation» может быть устранена.

    Правильно настройте переменные среды для Java

    Для исправления ошибки «A JNI error has occurred» может понадобится настроить переменные среды для Java. Выполните следующее:

    A JNI error has occurred, please check your installation and try again при компиляции java программы

    Многие новички, которые изучают программирование на Java при компиляции могут столкнуться с ошибкой «A JNI error has occurred, please check your installation and try again». Ошибка выскакивает даже если запускать совсем простой код типа «hello world!» как в примере ниже.

    Пример простого кода программы

    Пример простого кода Hello World!

    Обычно компиляция проходит, но созданный класс не интерпретируется. У большинства пользователей ошибка появляется из-за следующих двух моментов:

    1. Неправильные пути в переменных средах;
    2. Вы компилируете файл более новой версией Java, а запустить пытаетесь на более ранней. Например компилировали при помощи Java 10, а запускаете на Java 9.

    Как исправить ошибки при запуске и компиляции?

    Первое, что следует проверить – пути в переменных средах. По списку первым например стоит путь:

    А в конце каталог до jdk:

    Операционная система компьютера находит екзешник «java.exe» и первым делом смотрит в «..javapath» и останавливает поиск. Вам нужен файл что лежит в «…jdkbin». В переменных средах сначала нужно поставить jdkbin, а потом уже javapath. В конечном результате путь должен быть примерно такой:

    PATH=C:Program Filesjdkbin;C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program Files (x86)QuickTimeQTSystem

    Во втором случае всё еще проще. Если вы компилируете используя более позднюю версию Java Runtime 54, то соответственно и запуск нужно производить в аналогичной версии. Сама строчка «hello has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 53.0» как раз говорит нам об этом. Проверить это можно вбив фразу в тот же Гугл Переводчик.

    Compiled by a more recent version of the Java Runtime

    Compiled by a more recent version of the Java Runtime

    Выводы

    Как видим с ошибкой» A JNI error has occurred, please check your installation and try again» при компиляции Java программы в основном сталкиваются новички. Решить проблему можно проверив версии Java при компиляции и запуске файлов программы. А так же просмотреть корректность путей к «jdkbin» и «javapath». Напишите в комментариях помогло ли вам решение и удалось ли запустить вашу первую программу.

    Error «A JNI error has occurred. Please check your installation and try again in Eclipse x86 Windows 8.1»

    The above code works perfectly on my friend’s laptop and throws this error on my laptop. I have running the code on Eclipse v4.2 (Juno) using Java 7.

    I have also tested and run a lot of Java programs on my laptop all works well. This is the only program which gives such an error.

    How can I fix this problem?

    user avatar

    41 Answers 41

    I have been having this problem for a while, but now I have figured it out.

    It turns out that Java JDK 12 has both the JRE and the JDK inside the bin folder of the Java 12 JDK. (I have always believed that JRE and JDK are different application, but it turns out things have changed.)

    My problem was that I had Java JDK 12 installed on my computer. At the same time, I had Java 8 (JRE) Installed on my computer. So my computer was getting confused.

    With my command prompt environment set up to run Java and Javac commands:

    I typed the follow commands:

    This gave me Java 8.

    After that, I typed:

    This gave me Java 12.

    In other words, my program is getting compiled with Java 12 and I am trying to run with Java 8.

    To solve the problem, I uninstalled Java 8 JRE from my computer.

    I went back to command prompt to check if «java -version» and «javac -version» was returning the same version number, and yes, it was returning Java 12.

    I tried recompiling my program again, and running it. It worked!!

    user avatar

    user avatar

    Solution 1: Right-click on the class that contains the main method. Click on «Run As». Click on «Java Application». The keyboard shortcut is: Shift + Alt + X , J (while holding Shift and Alt , press X ; then release Shift and Alt and press J ).

    Solution 2: As Professor mentioned, please make sure that java -version and javac -version are the same.

    Note: Solution 1 is a quick fix and worked for me and a few other people. It may or may not work for you. I think Solution 2 is the proper way to solve it.

    user avatar

    user avatar

    Running the jar from command line by:

    I got information which made the problem clearer:

    main/Main has been compiled by a more recent version of the Java Runtime

    enter image description here

    In this case, the jar was compiled with a version newer than jre supports.

    user avatar

    Error: A JNI error has occurred, please check your installation and try again in Eclipse

    Solution: Check your package name as it may be colliding with the package name in Java. Simply change the package name to resolve your issue. 🙂

    user avatar

    I solved it by changing my ‘Compiler compliance level’. In Eclipse:

    Menu WindowPreferencesJavaCompiler.

    user avatar

    I had similar issues when using ‘java’ at the beginning of the package name, e.g. java.jem.pc

    Check your console output, I was receiving:

    user avatar

    user avatar

    I faced a similar problem with a project, in IntelliJ with Maven dependencies.

    I solved it changing the dependencies scope from provided to compile.

    IntelliJ:

    Menu → FileProject structureModulesDependencies → *Scope (provide to) → Compile.

    user avatar

    user avatar

    In my case the issue was caused by the JDK version. To solve this I suggest to go into your POM file and check the <jdk.version>1.7</jdk.version>.

    Afterwards, check the Java version in your cmd (Windows) or terminal (OS X or Linux) by typing: java -version.

    Compare the version shown in the terminal/command prompt with what you have in your POM file. Make sure they are the same. Then run your project again.

    user avatar

    user avatar

    You can check the console first to see the actual error message and then proceed by looking for answers for that error.

    My console shows the error NoClassDefFound for the class jcommander.

    Your error will probably be different from mine. The cause of my error is that the class jcommander is not in my M2 repository, so I just have to add that dependency in my pom.xml file. You can check if all the class dependencies are all declared and added in your current configuration and project build.

    user avatar

    user avatar

    It can happen if the JDK version is different.

    user avatar

    I also faced the same issue. By looking at the console that’s saying

    the solution is: Check your package name of your project.

    user avatar

    I was facing the same issue and in my case the compiler compliance level was selected as 14 in my Eclipse settings. In order to fix it, I changed it to the version of JDK on my machine i.e 1.8 and recompiled the project.

    Enter image description here

    user avatar

    user avatar

    I have found that adding these lines of code to the pom.xml file of a Maven project solves similar issues for me:

    user avatar

    Check your console. It says java.lang.SecurityException issue. Change your ‘package name’. I changed my package name from ‘java.assessment’ to ‘assesment’ and it worked for me. If somebody knows the root cause , let me know please.

    I experienced the same issue, however in my case it was due to the Configuration settings in IntelliJ IDEA.

    Even though the project SDK (File -> Project Structure) was set to Java 11, the JRE in the Run/Debug Configurations (Run -> Edit Configurations) was set to Java 8. After changing that to Java 11, it worked like a charm.

    user avatar

    Possible solution

    If none of these solutions worked for you then try this. I finally got mine working by deleting the two folders «.metadata» and «.recommenders» in the workspace folder.

    You can find your workspace folder path by clicking on menu FileSwitch WorkspaceOther in the Eclipse application’s toolbar.

    Now I am a complete noob crying my way through an software engineering degree at San Jose State University. So I am just sharing what worked for me without knowing much knowledge of why exactly.

    I do not know what harm or headaches, or even if both aforementioned folders needed to be deleted. But in the end, it worked for me and it seems the application just recreates fresh versions of those folders anyway.

    user avatar

    Just check small step.

    Both javac and java versions are the same. If different, you will get this error.

    user avatar

    user avatar

    My issue came from trying to disable the Maven nature from my project and then deleting the pom.xml file. This is bad, very bad, don’t do this. If you do, change it back to a Maven project and hopefully you can either restore your old pom.xml file or create a new one. As soon as I did that, it worked again.

    EDIT: I recently ran across this problem again and this time it was because I had duplicate libraries in my classpath. The one Maven added (which started with /M2_REPO/. and then one I had added (which I should not have done). Even though Eclipse was reporting that it could not find the class, the actual problem was that I had given it two libraries with the same class and it didn’t know which one to use. Once I removed the second reference, it worked.

    user avatar

    You can try: right click on the project and then click clean. After this run the project.

    It works for me.

    I faced a similar problem and then got the solution in the package name.

    I kept the package name as java.basics. In the console I got a hint for that as it clearly said «Prohibited package name». So I changed the package name and it worked.

    user avatar

    user avatar

    Edit the «.classpath» and include the below tag:

    <classpathentry kind=»con» path=»org.testng.TESTNG_CONTAINER»/>

    This could solve your problem.

    user avatar

    user avatar

    In my project I had changed my Maven POM file and removed the entry for maven-jar-plugin.

    When you build a JAR file whose purpose is to be executable, you need to include this so that certain entries get written into the manifest. I opened the old project, copied that entry (with some modifications for project name) and it worked.

    user avatar

    user avatar

    I think this happens because the name of your class is the same name of another class in the JDK. Help Eclipse to determine which one you are trying to run by selecting the package your class is in. Go to run configuration, select the project and the main class.

    When you press the search button to select the main class, you will find options that have the same name but different package, select your class.

    user avatar

    There was no information in my console so that sent me searching for additional solutions and found these — unique to the solutions presented here. I encountered this with Eclipse v4.7 (Oxygen) trying to run an old Ant build on a project.

    Cause 1

    I had configured Eclipse to use an external Ant install which was version 1.10.2 which apparently had classes in it that were compiled with JDK 9. In Eclipse I got the JNI error described above (running the Ant build at the command line gave me the renowned ‘unsupported major.minor version’ error — the Java I was using on the system was JDK 8).

    The solution was to roll back to the embedded Eclipse version of Ant being 1.10.1. I verified this as the correct solution by downloading Ant 1.10.1 separately and reconfiguring Eclipse to use the new 1.10.1 externally and it still worked.

    Cause 2

    This can also happen when you have the Ant Runtime settings configured incorrectly in Eclipse’s Preferences. Depending on the version of Ant you’re running you will need to add the tools.jar file from the appropriate JDK to the classpath used for the Ant Runtime (Home Entries). More specifically, without a proper configuration, Eclipse will complain when launching an Ant target that the JRE version is less than a particular required version.

    Essentially, ‘proper configuration’ means aligning each of the configuration items in Eclipse for running Ant so that they all work together. This involves the Ant Runtime Home entry (must point to an Ant version that is compatible with your chosen JDK — you can’t run Ant with JDK 8 when it was compiled against JDK 9); specifying the tools.jar that belongs to the JDK you want to run Ant with in the Ant Runtime settings; and lastly setting the JRE environment of your build script to the JDK you want to run Ant with in the External Tools Configuration.

    All three of these settings need to agree to avoid the error described above. You’ll also need to consider the attributes used in your javac tag to ensure the JDK you’re using is capable of executing as you’ve directed (i.e., JDK 7 can’t compile code using source and target version 8).

    Moreover

    If you’re really just trying to run an Ant build script to compile code to an older JDK (e.g., less than 8 for Oxygen), this article helped gain access to run Ant against an older JDK. There are Ant plugin replacements for a handful of versions of Eclipse, the instructions are brief and getting the correct plugin version for your particular Eclipse is important.

    Or more simply you can use this very good solution to do your legacy compile which doesn’t require replacing your Eclipse plugin, but instead changing the javac tag in your build script (while using the latest JDK).

    Я новичок в изучении Java. Пытаюсь запустить «hello world!» Пример того, что я запускаю ниже.

    class hello {
    
    	public static void main(String args[]) {
    
    		System.out.println("Hello, world!");
    
    	}
    
    }

    Javac компилирует, но созданный класс не интрепретируется. Выдается следующая ошибка:

    ***:~/Documents/JavaSampl$ javac hello.java
    ***:~/Documents/JavaSampl$ java hello
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: hello has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 53.0
    	at java.lang.ClassLoader.defineClass1(java.base@9-internal/Native Method)
    	at java.lang.ClassLoader.defineClass(java.base@9-internal/ClassLoader.java:939)
    	at java.security.SecureClassLoader.defineClass(java.base@9-internal/SecureClassLoader.java:152)
    	at jdk.internal.loader.BuiltinClassLoader.defineClass(java.base@9-internal/BuiltinClassLoader.java:553)
    	at jdk.internal.loader.BuiltinClassLoader.access$200(java.base@9-internal/BuiltinClassLoader.java:88)
    	at jdk.internal.loader.BuiltinClassLoader$3.run(java.base@9-internal/BuiltinClassLoader.java:466)
    	at jdk.internal.loader.BuiltinClassLoader$3.run(java.base@9-internal/BuiltinClassLoader.java:460)
    	at java.security.AccessController.doPrivileged(java.base@9-internal/Native Method)
    	at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(java.base@9-internal/BuiltinClassLoader.java:459)
    	at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(java.base@9-internal/BuiltinClassLoader.java:406)
    	at jdk.internal.loader.BuiltinClassLoader.loadClass(java.base@9-internal/BuiltinClassLoader.java:364)
    	at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@9-internal/ClassLoaders.java:184)
    	at java.lang.ClassLoader.loadClass(java.base@9-internal/ClassLoader.java:419)
    	at sun.launcher.LauncherHelper.loadMainClass(java.base@9-internal/LauncherHelper.java:585)
    	at sun.launcher.LauncherHelper.checkAndLoadMain(java.base@9-internal/LauncherHelper.java:497)

    Подскажите как это решить. Заранее спасибо!

    Многие новички, которые изучают программирование на Java при компиляции могут столкнуться с ошибкой «A JNI error has occurred, please check your installation and try again». Ошибка выскакивает даже если запускать совсем простой код типа «hello world!» как в примере ниже.

    Пример простого кода программы

    Пример простого кода Hello World!

    Обычно компиляция проходит, но созданный класс не интерпретируется. У большинства пользователей ошибка появляется из-за следующих двух моментов:

    1. Неправильные пути в переменных средах;
    2. Вы компилируете файл более новой версией Java, а запустить пытаетесь на более ранней. Например компилировали при помощи Java 10, а запускаете на Java 9.

    Как исправить ошибки при запуске и компиляции?

    Первое, что следует проверить – пути в переменных средах. По списку первым например стоит путь:

    «C:Program Files (x86)Common FilesOracleJavajavapath»

    А в конце каталог до jdk:

    C:Program Filesjdkbin

    Операционная система компьютера находит екзешник «java.exe» и первым делом смотрит в «..javapath» и останавливает поиск. Вам нужен файл что лежит в «…jdkbin». В переменных средах сначала нужно поставить jdkbin, а потом уже javapath. В конечном результате путь должен быть примерно такой:

    PATH=C:Program Filesjdkbin;C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program Files (x86)QuickTimeQTSystem

    Во втором случае всё еще проще. Если вы компилируете используя более позднюю версию Java Runtime 54, то соответственно и запуск нужно производить в аналогичной версии. Сама строчка «hello has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 53.0» как раз говорит нам об этом. Проверить это можно вбив фразу в тот же Гугл Переводчик.

    Compiled by a more recent version of the Java Runtime

    Compiled by a more recent version of the Java Runtime

    Выводы

    Как видим с ошибкой» A JNI error has occurred, please check your installation and try again» при компиляции Java программы в основном сталкиваются новички. Решить проблему можно проверив версии Java при компиляции и запуске файлов программы. А так же просмотреть корректность путей к «jdkbin» и «javapath». Напишите в комментариях помогло ли вам решение и удалось ли запустить вашу первую программу.

    Актуальное на этой неделе:

    Если вам на карту неожиданно пришли деньги, что делать?

    11.04.2022

    Если вам на карту неожиданно пришли деньги, что делать?

    Когда поступают деньги на карту, владелец обычно знает, что и откуда «падает». Родственник прислал, долг…

    Далее

    Как добавить VPN на Андроид через настройки

    06.04.2022

    Как добавить VPN на Андроид через настройки

    Ограничения доступа в интернет раздражает и не дает использовать интересные подключения. Проблема решается…

    Далее

    Как создать канал в Telegram: пошаговое руководство и советы

    06.04.2022

    Как создать канал в Telegram: пошаговое руководство и советы

    Собственный Telegram-канал может завести любой человек. Мессенджер в данном случае никого не ограничивает. При…

    Далее

    Код ошибки 60-02 и 01-03 в Сбербанк Онлайн – как исправить?

    19.03.2022

    Код ошибки 60-02 и 01-03 в Сбербанк Онлайн – как исправить?

    «Сбербанк онлайн» — это удобный сервис, позволяющий проводить финансовые манипуляции из любой точки мира….

    Далее

    I wrote a simple project in Java, using default configuration in IntelliJ IDEA. I built the project and ran it successfully. I was using Java 1.9. I wanted to check if it runs with Java 1.8. I changed the JRE in the configuration from Java 1.9 to Java 1.8 and ran my project. The following error occurred:

    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
    

    This question: IntelliJ Error: A JNI error has occurred, please check your installation and try again is different because it has NoClassDefFoundError instead of UnsupportedClassVersionError. This question A JNI error has occurred, please check your installation and try again in Eclipse x86 Windows 8.1 is also different because it regards Eclipse, not IntelliJ IDEA.

    asked Aug 25, 2018 at 11:53

    banan3'14's user avatar

    I found a solution, editing a component configuration in .idea/misc.xml.
    It was

    <component name="ProjectRootManager" version="2" languageLevel="JDK_1_9" project-jdk-name="9.0" project-jdk-type="JavaSDK">
      <output url="file://$PROJECT_DIR$/out" />
    </component>
    

    and I changed it into

    <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="8.0" project-jdk-type="JavaSDK">
      <output url="file://$PROJECT_DIR$/out" />
    </component>
    

    Then an applet appeared, which helped me add a new JDK (Java8) and I was able to run my project and the error disappeared.

    answered Aug 25, 2018 at 11:53

    banan3'14's user avatar

    banan3’14banan3’14

    3,4483 gold badges22 silver badges45 bronze badges

    Problem is our manifest files doesn’t match the project. What I did is solved my problem. I had provided codes for chat client and server.

    First I opened a new Java project.then created a package ,and then what I did is created two classes (you can give any name since we change it later.) for my 2 existing classes.

    Then I opened existing classes in notepad,copy all the content and paste them to
    newly created classes.
    An error occurs saying

    names doesn’t match

    . Rename compilation units.
    Then run..worked for me.

    RN92's user avatar

    RN92

    1,3561 gold badge13 silver badges32 bronze badges

    answered Feb 26, 2019 at 2:33

    Indika_Nuwan95's user avatar

    3

    You have encountered this JNI Error error message? Don’t panic! The problem can usually be solved quite quickly – and here you can find out how.

    Have you encountered this error message or popup?

    Error: A JNI error has occurred, please check your installation and try again

    JNI Error Popup
    Java Virtual Machine Launcher: JNI Error Popup

    The problem comes from the fact that your JRE (Java Runtime Enviroment), that is your installed Java version and your JDK (Java Development Kit) do not work together correctly.

    Now there are several possible solutions for you. Just choose the scenario that applies to you:

    JNI Error in Windows CMD

    JNI Error when starting a Minecraft Server

    Earn money with your website or blog

    JNI Error in Minecraft TLauncher

    JNI Error in Windows CMD

    The problem can occur if you want to call a .jar file via command line (Windows CMD), e.g. via the command java -jar File.jar or if you have compiled your program with Eclipse before.

    To fix the error, you need to adjust the environment variables for Java.

    • To do this, type “environment variable” in your Windows search and open the “Edit System Environment Variables” item. In this window you click on “Environment variables…”.

    System properties - screenshot

    System properties – screenshot
    • The “Environment variables” window opens. There you select the variable “Path” in the lower window “System variables” and click on “Edit…”.

    Environment variables - screenshot

    Environment variables – screenshot
    • There you look for the line where the installation path of your Java JDK is stored. In my case this is under C:Program FilesJavajdk-13.0.1bin.

    If you don’t have a Java JDK installed yet, you can download and install the .exe installation file (“x64 Installer”) here.

    • If you do not have this entry, you can add it by clicking the “New” button.

    Edit environment variables - screenshot

    Edit environment variables – screenshot
    • Select the line with the Java JDK and click on “Move up” until the entry is at the top. Done!
    • Now you have to close and reopen the Windows-CMD once and the error should be fixed.

    JNI Error when starting a Minecraft Server

    If you try to start your Minecraft server via the official server.jar (error occurs since version 1.17), you may get this error message:

    JNI Error Popup
    Java Virtual Machine Launcher: JNI Error Popup
    • Download the latest Java JDK version as .exe file (“x64 Installer”) and install by clicking on the .jar file
    • Now the server should start again

    JNI Error in Minecraft TLauncher

    This error message can also appear when launching the Minecraft TLauncher.

    • Download the latest Java JDK version as .zip archive (“x64 Compressed Archive”) (see screenshot)

    Java JDK Download Page

    Java JDK Download Page
    • Right-click on the downloaded file and click “Extract here”.
    • Copy the unzipped folder to the directory C:Program FilesJava
    • Launch your Minecraft TLauncher and click on the gear in the bottom right corner
    • Click at “Java path” on “Browse…” and choose C:Program FilesJavajdkXbinjavaw.exe (replace the X by the name of your JDK folder).
    • Save everything – now the game should start again

    Java JNI error message still appears?

    • Restart your computer
    • Uninstall old Java versions under Control Panel > Programs > Programs and Features and install the latest Java JRE and Java SDK.

    I hope that you were able to fix the JNI error with the help of this post. If this is still not the case, feel free to write me a comment.

    What did you think of this post?

    like

    dislike

    Related Posts

    This can also interest you

    Ezoic


    Понравилась статья? Поделить с друзьями:

    Читайте также:

  • Line protocol is down как исправить cisco
  • Line number or label or statement or end of statement ошибка
  • Line error javascript
  • Line ends with space python как исправить
  • Line 6777 ошибка

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии