Моя команда разработчиков недавно была вынуждена перейти в удаленную среду разработки, где у нас нет полного доступа к серверам. До изменения у нас был JAR, который нормально работал на Java 1.7 x64 вместе с JRE 7. Когда мы перешли на новый сервер, наш JAR работал нормально, но затем один из администраторов сервера «обновил» нашу Java до более старой. версию и удалили ту, которую мы использовали. Не спрашивайте меня, почему, я не знаю. Я переустановил Java 1.7 и удалил 1.6 вместе с JRE.
Следующая проблема возникает во время выполнения, ошибок сборки нет:
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.7', but '1.6' is required.
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.
Я без проблем запустил тот же JAR на своем ноутбуке. И сервер, и мой ноутбук имеют JDK 1.7 и JRE 7 в соответствующих переменных% HOME% и системном PATH. Я даже переустановил JRE 6 и поместил его позже в переменные PATH системной среды с тем же результатом.
Я также изменил реестр, чтобы посмотреть на 1.6, и это привело к следующему, которое я просмотрел, и, похоже, из-за установки нескольких Jav (что привело к моей исходной проблеме):
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
Я был бы признателен за любое понимание, которое у вас есть, поскольку я просматривал различные форумы, но, похоже, ни у кого нет именно моей проблемы. Кроме того, это произошло на другом сервере, который мы используем. Спасибо!
Обновление: не повезло с перекомпиляцией JAR до 1.6 или 1.7 и соответствием JDK. Кроме того, с какой стати новая версия Java ломает старую скомпилированную версию?