Произошла ошибка при работе с 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.
Так что проверьте эти вещи, т.е.
- Приложения по умолчанию в Windows
- Переменная среды PATH
Очевидно, есть много разных способов исправить ситуацию. Я не думаю, что кто-то явно превосходит других, и наиболее подходящий вариант будет зависеть от вашей среды и ваших потребностей, о которых я не знаю, поскольку вы не предоставили эти детали, поэтому я не буду предлагать, какие действия вы должны предпринять, чтобы решить вашу проблему.
Что вам нужно сделать, так это убедиться, что файл JAR, содержащий Java-код, который был скомпилирован для JDK 11, запускается с java.exe
как минимум с JDK 11.
Обратите внимание, что более высокие версии java могут запускать классы, скомпилированные до более низких версий. Другими словами, если ваш JAR был скомпилирован в JDK 8, вы можете запустить его с JDK 11, но не наоборот (что является причиной вашей ошибки, как указывали другие).
Как ясно сказано в сообщении об ошибке, ваша JRE слишком старая. Установите более новую JRE (и обновите PATH и JAVA_HOME).
Кроме того, не публикуйте сообщения об ошибках в виде снимков экрана, если их можно также вставить в виде текста.