Недавно моя команда разработчиков была переведена в удаленную среду разработки, где у нас нет полного доступа к серверам. Перед изменением мы имели 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, и это приводит к следующему: я посмотрел вверх, и похоже, что у него установлено несколько Javas (вернувшись к моей исходной проблеме):
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
Я был бы признателен за любое понимание, которое у вас есть, поскольку я просматривал различные форумы, но ничто, кажется, не имеет точно моей проблемы. Кроме того, это происходит и на другом сервере, который мы используем. Спасибо!
Обновление: не удастся перекомпилировать JAR на 1.6 или 1.7 и соответствовать JDK. Кроме того, почему в мире была бы более новая версия Java нарушена более старая скомпилированная версия?