Nowy kod na starej JVM
Mamy sobie klasę:
Listing 1. Przykładowa klasa
public class A{
public static void main(String[] a){
for(String x: a)
System.out.println(x);
}
}
Klasa jest zgodna z java 1.5+, ale kompilujemy w Java 1.7. Nagle okazuje się, że trzeba uruchomić to w Java 1.3… problem jest doskonale widoczny. Pętla foreach z javy 1.5. W praktyce jedną pętle można zamienić na itereator, ale set pętli… nie koniecznie.
Co robimy?
Ano kompilujemy sobie to javac i następnie otwieramy w hexedytorze. Ósmy bajt zamieniamy na 2F, zapisujemy i po problemie.
Naiwne? Oczywiście.
Działa? No ba!
Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. W takim przypadku jest, to zaznaczone. Artykuły są dostępne na licencji CC-BY.
Jeżeli spodobał ci się ten wpis, to podziel się nim z innymi lub wesprzyj autora.