Нещодавно мою команду розробників перенесли у віддалене середовище розробки, де ми не маємо повного доступу до серверів. До зміни ми мали 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% та системному ШЛЯХУ. Я навіть переінсталював 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 ламає стару скомпільовану версію?