Я пытаюсь обновить существующую систему сборки, чтобы использовать Java 8 вместо компилятора Java 5/6, однако мне все же приходится создавать совместимые выходы с Java 5/6. В целом это тривиально (-target 1.6), но я с трудом делаю это с кодом, созданным из wsimport (используя версию в JDK 8 bin).Как заставить Java 8 команду wsimport генерировать 1,6-целевой код-совместимый
Я использую 64-разрядную виртуальную машину Java HotSpot (сборка 25.20-b23), JDK 1.8.0_20.
Команда wsimport вызывается из командной строки для генерации кода и выходов, упакованных непосредственно оттуда. По старым причинам я не могу изменить этот процесс (например, использовать ant), поэтому мне нужно решить проблему из командной строки.
Что я запустил: «wsimport WSDL_FILE» (фактический файл не имеет значения) затем запустите «javap -verbose CLASS | grep major» на любом из классов на выходе, чтобы проверить версию: он всегда выходит 52.
Я попытался с помощью -J аргумента wsimport чтобы передать параметры в JAVAC компилятор, однако ни один из ниже работал:
wsimport "-J-target 1.6" WSDL (fails with unrecognized option -target 1.6" coming from wsimport)
wsimport "-J-Djavac.target=1.6" WSDL (no effect)
wsimport "-J-Djavac.opt.target=1.6" WSDL (no effect)
Предположительно есть либо некоторые вариации при переходе цели через что работы или некоторые настройки свойств, которые должны работать; если это тот, который я использую, то я не понял, как правильно его передать.
Ницца! Я считаю, что это сработает, что я могу разумно включить вторую команду, где происходит сборка. Я соглашусь, когда я докажу, что работает (до тех пор, если кто-нибудь знает, как исправить внутри wsimport, хотелось бы узнать). – user1676075