Jak mogę sprawdzić, czy klasa Java została skompilowana do użycia w java 6 vm?Czy istnieje sposób, aby sprawdzić, czy klasa została skompilowana dla java6?
Czy istnieje prosty sposób?
Jak mogę sprawdzić, czy klasa Java została skompilowana do użycia w java 6 vm?Czy istnieje sposób, aby sprawdzić, czy klasa została skompilowana dla java6?
Czy istnieje prosty sposób?
Jest w wersji class file format specification. WP article on the subject zawiera bieżący zestaw stałych numerów wersji.
Za pomocą java decompiler
... to nie idzie dobrze, przynajmniej nie z jd-gui. Ten nie oferuje widoku na metadane pliku klasy. (szybko przetestowany z aktualnym V0.3.2). Tak więc przy użyciu tej metody należałoby szukać klas/metod, które nie były dostępne przed wersją Java 1.6. –
Inexact Andreas_D, wersja kompilatora jest wyświetlana przez JD-GUI: przeciągnij i upuść plik klasy i przesuń mysz nad kartą. –
UNIX,
$ javap -classpath <classpath> -verbose foo.Bar \
| grep -q 'major version: 50' && echo yep || echo nope
dzięki @matt b.
Dobra odpowiedź dzięki! – feniix
Szukałem raczej czegoś podobnego do polecenia lub po prostu patrząc na nagłówek pliku lub coś w tym stylu. Ale twoja odpowiedź jest najbliższa temu, czego szukałem do tej pory. – feniix
'javap -verbose -classpath ... com.company.YourClassName' wydrukuje numery wersji dla ciebie –
, ponieważ matt b nie zrobił tej faktycznej odpowiedzi i nikt nie dał magicznej liczby (50), dodałem moją własną odpowiedź i trochę łatwiej po prostu uzyskać odpowiedź tak/nie. –