Oracle JDK na Linux-u

Zeyn

Member
Joined
Feb 17, 2016
Messages
251
Reaction score
1
… i par reči o Javi (i ovog puta se odričem odgovornosti za svaku štetu koju napravite, no ovde ju je mnogo teže izazvati nego u prošlom slučaju)

Uvod

Java je objektno-orijentisani , imperativni programski jezik koji se vodi dobro poznatim konceptom WORA (“write once, run anywhere”). Razvio ju je Džejms Gozling tokom devedesetih godina u kompaniji Sun Microsystems, a kasnije ju je preuzeo Oracle. Kao što to i obično biva u IT svetu, i oko Jave se vode “ratovi” (videti: slučaj Google vs. Oracle zbog Androida). Kako Java postiže da se pokreće na toliko velikom broju platformi? Odgovor je Java virtuelna mašina (JVM). Javin kod se prvo prevodi u bajtkod koji JVM pretvara u mašinski kod. U odnosu na C i C++ ovo zvuči kao dug put do procesora i sluti na “sporost”, ali Java nema problema sa brzinom, šta god pričali neki. Naravno da je nećete koristiti za pisanje drajvera ili u embeeded sistemima sa veoma malo prostora, ali JVM po brzini uopšte ne zaostaje toliko za konkurentnim jezicima (pravu sporost možemo videti kod Python-a, Ruby-a, PHP-a i sličnih koji su interpretirani jezici).

Razlika između JRE i JDK

Da razrešimo odmah ovu dilemu - JRE i JDK nisu isto.

JRE (Java Runtime Environment) je okruženje za pokretanje Java aplikacija. To je ono što koristite vi standardni korisnici da pokrećete Java aplikacije na svom računaru (do skorijih godina i u pregledačima, pre nego što su apleti postali za*ebana stvar po pitanju bezbednosti (ali to nema veze sa Javom kao jezikom)).

JDK (Java Development Kit) se sastoji iz JVM i skupa razvojnih alata za razvijanje, pakovanje i analize Java aplikacija (javac, jar, jmc, jdb, javah, JConsole…). JDK već u sebi ima i JRE tako da ne morate zasebno da preuzimate ove dve stavke (no ako niste programer nema potrebe da preuzimate JDK, već samo JRE).

Šta su Java SE, Java ME i Java EE?

Ovo je pitanje koje najčešće postavljaju početnici jer im nije jasno odakle da počnu i otkud to da jezik ima tri različite “verzije”. 'Ajmo redom.

Java SE (Standard Edition) - kao što joj i samo ime kaže, standardna edicija. Služi za razvoj portabilnog koda za desktop i serverska okruženja i koristi opšte Javine API-e. Ako ste početnik, krenućete sa ovom edicijom (i najviše ćete je koristiti ako se odlučite za razvoj desktop aplikacija). Najpoznatija implementacija Java SE je upravo Oracle JDK.

Java EE (Enterprise Edition) - Java je poznata kao jezik koji se dosta koristi u preduzetničkim krugovima za razvoj visoko skalabilnog softvera, za mreže, web servise i ostale aplikacije na serverima. To je u suštini proširena verzija standardne edicije i najviše se koristi u web razvoju. Koristićete je dosta ukoliko se odlučite na razvoj sajtova i web aplikacija u Javi.

Java ME (Micro Edition) - ova platforma dizajnirana je za ugradive sisteme, najčešće za mobilne uređaje i set top box-ove i uređaje poput PDA, mp3 plejera, digitalnih kamera pa čak i u automobilima, pametnim firžiderima / veš mašinama itd. Manje se forsira u odnosu na prethodne dve edicije, ali ako vas zanima ova oblast sada znate koja joj edicija pripada.

Java FX je platforma za razvoj grafičkih aplikacija koja je inkorporirana u Java SE i ima za cilj da postane de fakto standard za grafiku, nasuprot Swing biblioteci (koja će se još neko vreme isporučivati u budućim verzijama Jave).

OpenJDK vs. Oracle JDK

OpenJDK je besplatna, otvorena implementacija Java SE, a nastala je kao rezultat napora Sun-a od 2006. godine uz izuzetke linkovanja. Ovo je inače i podrazumevana verzija koja se može naći na mnogim Linux distribucijama. U suštini vrlo je mala razlika između ovo dvoje, pošto Oracle inženjeri rade na obe verzije, no Oracle JDK ima neke vlasničke delove (poput JRocket Mission Control), međutim, virtuelne mašine su drugačije i OpenJDK više koristi otvorene biblioteke dok Oracle JDK više stremi ka komercijali.

Oracle JDK je bolji izbor u situacijama kada treba pisati komercijalni softver (stabilnijia je implementacija) i kada je potrebno razvijati Android aplikacije (Google planira da za sledeću verziju Android-a koristi OpenJDK, ali i tada će više uređaja koristiti starije operativne sisteme kod kojih nije moguće razvijati sa OpenJDK).

Instalacija

Pa hajde da konačno krenemo sa procesom. Uputstvo ću pisati za Debian i njegove derivate (Mint, Ubuntu, LMDE…) pošto se najviše koristi, no nije puno drugačiji proces ni za ostale distroe.
  1. Prvo ćemo da uklonimo sve vezano za OpenJDK:
sudo apt-get remove openjdk*
  1. Posetite Java SE sekciju na Oracle-ovom sajtu, prihvatite uslove korišćenja i preuzmite poslednju verziju Jave za vašu platformu (obratite pažnju da bude .tar.gz arhiva).
  2. Sada ćemo da raspakujemo arhivu. Uđite u Terminal i otkucajte redom sledeće (iza # su komentari):
cd ~/Downloads # direktorijum za preuzimanje je najčešće ovde, no može da bude drugačije kod vas tar -xvjf jdkx.x.x_x-linux-x64.tar.gz # izmenite u zavisnosti od imena preuzete arhive
  1. Sada ćemo napraviti novi direktorijum za Javu.
mkdir -p /opt/java
  1. I prebacićemo raspakovan sadržaj unutar njega.
sudo mv jdkx.x.x_x /opt/java
  1. Sada moramo postaviti ovaj JDK kao podrazumevani da bi ga naše buduće razvojno okruženje i ostale aplikacije prepoznalo:
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdkx.x.x_x/bin/java" 1 sudo update-alternatives --set java /opt/java/jdkx.x.x_x/bin/java
  1. Kucanjem java -version komande u Terminal trebali bi dobiti nešto slično ovom ispisu:
java version "1.8.0_77" Java(TM) SE Runtime Environment (build 1.8.0_77-b03) Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)

Ovo je znak da ste sve dobro odradili.

Šta dalje?

Ukoliko vas zanima razvoj Java desktop, web ili Android aplikacija, toplo preporučujem Oracle dokumentaciju. Aktuelna verzija u toku pisanja ovog teksta je Java 8 (da ne biste slučajno čitali dokumentaciju za neku stariju verziju pošto je i ona dostupna na sajtu).

Home: Java Platform, Standard Edition (Java SE) 8 Release 8
Java Tutorials Learning Paths

Što se tiče web razvoja, u poslednje vreme su popularni Play! , Spring i Grails. Očekuje se da Java EE 8 postane dostupna ove godine ili početkom sledeće, a do tada koristite Java EE 7 Update 2.

Za Android aplikacije je potrebno da podesite ADT i instalirate ih u zavisnosti od vašeg okruženja (Eclipse, NetBeans ili Android Studio).

Android Developers
Getting Started | Android Developers

Sva pitanja/sugestije pišite u temi 🙂
 
Last edited:

Zeyn

Member
Joined
Feb 17, 2016
Messages
251
Reaction score
1
Ovi koraci su dodatni ukoliko želite da prevodite programe preko Terminala:
sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/java/jdk1.8.0_77/bin/javac" 1
I za Java WebStart
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/java/jdk1.8.0_77/bin/javaws" 1
 
Last edited:
Top