Произошла ошибка при работе с Windows Power Shell. Произошла ошибка JNI, проверьте свою установку и повторите попытку.

Я получаю сообщение об ошибке "Произошла ошибка JNI, проверьте установку и повторите попытку". Каждый раз, когда я запускаю java -jar с помощью команды "java -jar filename.jar" с оболочкой Windows Power. Он отлично работает всякий раз, когда я открываю его двойным щелчком.

Как я могу решить эту проблему?

Заранее спасибо.

2 ответа

Решение

Вы говорите, что это работает, когда вы дважды щелкаете файл JAR (в проводнике), но не когда запускаете его из окна PowerShell в этой папке:

C:\incubating-netbeans-11.0-bin\netbeans\ani\Tank-IQ-Display-Configurator\Tank-IQ-Display-Configurator\dist

Я предполагаю, что у вас установлено более одного JDK.

Если вы введете следующую команду в окне PowerShell, она отобразит пути ко всем java.exe файлы.

where.exe java

Windows связывает расширения файлов с исполняемыми файлами. Очевидно, что на вашем компьютере.jar расширение связано с java.exe. Вы можете проверить это через Панель управления. Найдите приложения по умолчанию. Следовательно, когда вы дважды щелкаете JAR в проводнике, запускается связанный исполняемый файл.

Я предполагаю, что исполняемый файл по умолчанию - это JDK 11 и что либо в папке, путь которой я написал выше, есть java.exe который совместим с JDK 8 или в переменной среды PATH, путь к исполняемому файлу JDK 8 предшествует пути к исполняемому файлу JDK 11.

Так что проверьте эти вещи, т.е.

  1. Приложения по умолчанию в Windows
  2. Переменная среды PATH

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

Что вам нужно сделать, так это убедиться, что файл JAR, содержащий Java-код, который был скомпилирован для JDK 11, запускается с java.exe как минимум с JDK 11.

Обратите внимание, что более высокие версии java могут запускать классы, скомпилированные до более низких версий. Другими словами, если ваш JAR был скомпилирован в JDK 8, вы можете запустить его с JDK 11, но не наоборот (что является причиной вашей ошибки, как указывали другие).

Как ясно сказано в сообщении об ошибке, ваша JRE слишком старая. Установите более новую JRE (и обновите PATH и JAVA_HOME).

Кроме того, не публикуйте сообщения об ошибках в виде снимков экрана, если их можно также вставить в виде текста.

Другие вопросы по тегам