2014-10-23 13 views
6

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.

Odpowiedz

3

Zakładając, że wsimport tworzy kod źródłowy kompatybilny z Javą 6, nie ma powodu, dla którego nie powinien, ale kto wie, rozwiązaniem jest po prostu dodanie -Xnocompile do wsimport, a następnie skompilowanie źródła bezpośrednio, używając dowolnego mechanizmu, który jest wygodny dla twój proces.

+0

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

Powiązane problemy