Próbuję zaktualizować istniejący system kompilacji tak, aby używał Java 8 zamiast kompilatora Java 5/6, jednak nadal muszę generować wyjścia zgodne z Javą 5/6. Ogólnie rzecz biorąc jest to trywialne (-target 1.6), ale mam trudności z wykonaniem tego z kodem generowanym z wsimport (używając wersji w bin JDK 8).Jak wymusić linię poleceń wsimport Java 8 w celu wygenerowania kodu zgodnego z obsługą 1,6 celu
Używam 64-bitowego serwera VM Java (wersja 25,20-b23), JDK 1.8.0_20.
Komenda wsimport jest wywoływana z wiersza polecenia w celu wygenerowania kodu i danych wyjściowych bezpośrednio z niego pakowanych. Ze względów starszych nie mogę zmienić tego procesu (np. Użyć ant), więc muszę rozwiązać problem z wiersza poleceń.
Uruchamiam: "wsimport WSDL_FILE" (aktualny plik nie ma znaczenia) następnie uruchom "javap -verbose CLASS | grep major" na dowolnej z klas wyjścia, aby sprawdzić wersję: zawsze wychodzi 52.
próbowałem za pomocą -J argument wsimport przekazać opcje kompilatora javac, jednak żadne z poniższych pracowali:
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)
Przypuszczalnie istnieje też pewne różnice przy przejściu przez bramkę, która działa lub niektóre ustawienia właściwości, które powinny działać; jeśli to jest jeden, którego używam, to nie mam pojęcia, jak przekazać to poprawnie.
Nice! Wierzę, że to zadziała, że mogę rozsądnie włączyć drugie polecenie, w którym pojawia się kompilacja. Przyjmuję, gdy raz udowodnię, że działa (do tego czasu, jeśli ktoś wie, jak naprawić w usimport, chciałbym wiedzieć). – user1676075