piątek, 14 grudnia 2012

Oracle Forms z Jawą 7 po ludzku działające

Chwała!
Tak się składa, że pracowo dość sporo mam do czynienia z aplikacją opartą o Oracle Forms. Aplikacja ma ten feler, że domyślnie nie za bardzo chce współpracować z siódmą wersją Jawy. Cóż, wyjście dotąd było jedno, używać wersji szóstej i broń Boże nie dać się podkusić Chromowi do aktualizacji na najnowszą wersję (o której to aktualizacji krzyczy mnie ciągle i namiętnie). Co się działo, gdy jednak ulegliśmy? Ano śliczny komunikat „FRM-92095: Potrzebna jest wyższa wersja Oracle JInitiator”. Świetnie. Fajnie. Ale tak się składa, że nawet posiadanie najnowszego możliwego JInitiatora problemu nie rozwiązuje.
Na szczęście od czego mamy nieprzebrane zasoby internetu. Otóż okazuje się, że problem leży w rozpoznawaniu przez formsy czy są odpalane z JInitiatorem czy zwykłą Javą. Jak było do przewidzenia następuje to poprzez sprawdzenie zmiennej java.vendor. Jak jest Oracle, to JInitiator. Pięknie nie? Problem w tym, że od wersji 7 jawy Oracle jest domyślną wartością tej zmiennej. Ślicznie.
Więc co robimy? Tak, tak. Zmieniamy wartość tej zmiennej przy uruchamianiu jawy. Nie trzeba nic modyfikować na serwerze, żadnych obejść, proksów, etceterów i itepów. Czyste, proste i przyjemne rozwiązanie. Działa zarówno pod Windows jak i linuksami. Niestety nie mam możliwości aktualnie sprawdzić dokładnie jak w tych ostatnich to wygląda, ale Inteligentny Czytelnik powinien sobie poradzić. Zaczynamy.
  1. W wypadku okienek i przeglądarki o tej samej ilości bitów uruchamiamy po prostu Panel Sterowania i z niego wybieramy aplet Java. W wypadku systemu 64 bitowego i 32 bitowej przeglądarki (czyli też 32 bitowej jawy) musimy przejść do podkatalogu bin instalacji naszego jre i uruchomić plik javacpl.exe.
  2. W uruchomionym oknie wybieramy zakładkę Java i przycisk View
  3. Wybieramy interesującą nas instancję jawy i w pole Runtime Parameters dodajemy argument -Djava.vendor="Sun Microsystems Inc."
  4. Zatwierdzamy i cieszymy się.
Oryginalnie przepis znaleziony tutaj (po angielsku).

Brak komentarzy:

Prześlij komentarz