Существует ли быстрый путь (например, инструмент) для обнаружения из источника (или возможно даже от скомпилированных классов), какие части приложения называют Java методами API, которые только реализованы в определенной версии Java? (например, какие части моего приложения Java6-конкретны),
Я не обязательно хочу скачкообразно двинуться через весь ClassMismatchErrors и избежать метода проб и ошибок. Скажем, я только хочу зарегистрировать, какие части приложения не будут работать, если они были записью для, например, Java6, и я хочу выполнить его в версии 5 JDK.
Есть ли что-то вроде этого? Google не помог на этот раз, и при этом я не находил решения здесь (редкий случай действительно:)
Для этого может быть полезен Animal Sniffer , особенно его плагин Maven .
Если я правильно вас понимаю, то, что вы описываете, мне не кажется хорошей идеей.
Похоже, вы хотите создать некоторую библиотеку на JDK 6 (указав -target 1.5), но пусть она будет запущена на JDK 5 и просто некоторые классы или методы здесь и там просто не работают (потому что им нужен Java6- только API). Я бы не стал этого делать. Метод, который должен работать, может по-прежнему инициировать загрузку класса, который сам содержит некоторую ссылку на класс, новый в Java 6, и ошибка
будет брошен.
Будет намного лучше, если вы просто выберете минимально поддерживаемую версию и будете жить с ней.