Ubuntu 12.04|14.04 javaohje

Java Ubuntuun, 2014/11: OpenJDK-java=oletus (kohta 2)/Oracle-java (kohdat 3 & 5)
Testien mukaan OpenJDK toimii hyvin eikä vaadi turvallisuusasetuksia mitä Oracle java vaatii, eli kannattaa asentaa ensisijaisesti OpenJDK, ja Oracle-java vain jos todella tarvitset sitä
HUOM: javaa EI asenneta Ubuntuun lataamalla netistä, vaan paketinhallinnan kautta!

1. Onko koneeseen asennettu java, tarkistetaan näin päätteellä:

java -version
Jos javaa ei ole, tulee luettelo, mistä paketeista java löytyy
(Oracle java ei löydy näistä paketeista, vaan oletusjava OpenJDK)

2. OpenJDK-Java asennus sovellusvalikoimasta (kaikki sivustot ei ennen ole toimineet OpenJDK:lla):

avaa sovellusvalikoima, ja anna hakusana java
Asenna OpenJDK Java 7 ajonaikainen ympäristö
(kun valitset OpenJDK:n, klikkaa ennen asennusta lisätietoja ja rasti lisäosa icedtea-7-plugin, niin se tulee mukaan, voi sen asentaa erikseenkin, jos rasti unohtui laittaa)

3. Oracle-Java asennus komentoriviltä (nykyään yhä harvemmat sivustot vaatii Oracle-javan, Sampopankki/Danskebank:kaan ei enää):

Oracle-java-installeri löytyy ppa:sta, kopioi ja liitä nämä komennot yksitellen ja paina ENTER, syötä salasana jos sudo kysyy ja ENTER:
sudo add-apt-repository ppa:webupd8team/java
(paina ENTER kun tulee press enter to continue)
sudo apt-get update
sudo apt-get install oracle-java7-installer
(haluatko jatkaa: k, hyväksy lisenssi: OK (enter), sitten paina TAB->Kyllä (enter), anna mennä loppuun asti, tämä siis asentaa oracle-java7:n koneeseen)
Asennusskripti ajaa automaattisesti komennon update-alternatives, mikä vaihtaa oracle-javan aktiiviseksi, jos koneessa ennestään on toinen java

Komennolla: java -version näet että Oraclen java on nyt käytössä (tuloksessa ei löydy sanaa OpenJDK),
esimerkkitulostus:
java version “1.7.0_72″
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) Client VM (build 24.72-b04, mixed mode)

Oracle-javaa EI siis asenneta lataamalla netistä, vaan paketinhallinnan kautta. Tällä tavalla sen päivitykset saadaan samalla tavalla kuin muidenkin ohjelmien, keskitetysti Ubuntun päivitysten mukana (päivitykset tulevat automaattisesti, eikä niihin tarvita komentoriviä). Javan päivittäminen on tarpeen: FF voi estää liian vanhan javan käytön kytkemällä java-pluginin pois käytöstä.

HUOM: haluttaessa oracle-java-plugin saadaan pois käytöstä FF-lisäosavalinnalla: Älä käynnistä koskaan ja vaihtamalla siihen: Käynnistä aina vain kun ollaan halutulla sivulla, asetuksen vaihto lisäosista ei vaadi FF-uudelleenkäynnistystä. Jos selainjavaa ei tarvitse päivittäin, käytöstä poisto on suositeltavaa, varsinkin windows-puolella!

Oracle-java on ollut yleisin turvallisuusriski Windows-puolella (javaplugin laskee haitat läpi), ja arvoitus myös Linux-puolella: kun vertaa OpenJDK-javapaketin (45M) ja Oracle-javapaketin (137M) kokoa, herää epäily, mitä kaikkea Oracle-javapaketti oikein sisältää. Oracle-javan pluginin tapaisia turva-aukkoja ei ole ollut OpenJDK javan icedtea-pluginissa, ja oracle-javan turva-aukotkin on ‘hyödynnetty’ windows-puolella.

4. Komento, millä aktiivi java voidaan vaihtaa, jos javoja asennettu useita:

sudo update-alternatives –config java
(huom: komennossa VIIVAVIIVAconfig)
-valitse java oletukseksi antamalla sitä vastaava numero, tässä joko 0 tai 1:
* 0 /usr/lib/jvm/java-7-oracle/jre/bin/java 1062 auto mode
1 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1061 manual mode
(0, tai enter koska 0 on jo oletus, säilyttää oraclen, 1 vaihtaisi openjdk-javan)

HUOM! Jos on useita javoja, selainliitännäinen on mime-tyyppi-riippuva: jos FF:n lisäosissa on sekä Icedtea että Oracle-plugin, FF:n lisäosat-asetuksista ei voi asettaa vain toista pois käytöstä, asetusmuutos muuttaa molempien tilan (molemmat ei voi olla yhtaikaa käytössä) ja update-alternatives ei kokeilussa vaihtanut Oracle java pluginia käytöstä, vaikka muutti OpenJDK:n aktiiviksi. Manuaalisella editoinnilla piti tässä tapauksessa
1) ottaa Icedtea-plugin käyttöön luomalla linkki (jos IcedTea näkyy liitännäisissä linkkiä ei tarvitse tehdä)
mkdir ~/.mozilla/plugins
ln -s /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so ~/.mozilla/plugins/
2) estää Oracle-plugin käynnistymästä
cd /usr/lib/jvm/java-7-oracle/jre/lib/i386
sudo mv libnpjp2.so libnpjp2.so-pois
(huom: uudelleennimeäminen pitää uusia, jos java-päivitykset ylikirjoittavat sen!)
Käynnistä FF ja mene Työkalut-Lisäosat-Liitännäiset: pitäisi näkyä IcedTea-plugin muttei Oracle-java-pluginia, mikäli IcedTea tila on ‘Älä käynnistä’, muuta se ‘Käynnistä aina’. Nyt OpenJDK-java pitäisi toimia normaalisti.

Vaihto takaisin Oracle-javaan menee ajamalla update-alternatives ja valitsemalla siitä Oracle ja tarvittaessa
1) poistamalla em Icedtea-plugin-linkki käytöstä
cd ~/.mozilla/plugins
rm IcedTeaPlugin.so
2) palauttamalla Oracle-plugin
cd /usr/lib/jvm/java-7-oracle/jre/lib/i386
sudo mv libnpjp2.so-pois libnpjp2.so
Käynnistä FF ja mene Työkalut-Lisäosat-Liitännäiset: pitäisi näkyä Oracle-java-plugin muttei IcedTea-pluginia, mikäli Oracle-plugin tila on ‘Älä käynnistä’, muuta se ‘Käynnistä aina’. Nyt Oracle-java pitäisi toimia normaalisti.

Selkeämpi vaihtoehto javan vaihdolle on poistaa ylimääräinen java, jos mahdollista ennen uuden asennusta:
OpenJDK synapticilla (hakusanat openjdk ja icedtea ja poistaa näihin liittyvät paketit),
Oracle-java ppa-purgella näin:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:webupd8team/java
(jotain konfiguraatiota voi vaatia manuaalista poistoa esim em linkki jos on tehty)

5. Javaselainsovellusten ajon salliminen, FF+oracle-java turvallisuusasetukset

Sen lisäksi, että oracle-javaplugin on käynnistetty FF lisäosista, oracle-javalla on 2 lisäkontrollia

a1. javasovelluksen pitää läpäistä turvallisuusasetukset (java control), muuten se blokataan (tulee ‘Application blocked by security settings’)
esim. sivun http://www.w3.org/People/mimasa/test/object/java/clock appletit antaa oletuksena security-virheen

a2. sille pitää antaa aktivointi sivustokohtaisesti (FF control)

a1. Javan control-sovellus ‘Oracle java 7 plugin control panel’ tulee javan asennuksessa, sen välilehti Security sisältää oletusturvallisuusasetukset, mitä pitää muuttaa, jos javasovellus on allekirjoittamaton:
-Enable java content in the browser (rasti=sovellusta halutaan ajaa selaimella)
-Security level high (java applications identified by a certificate from a trusted authority will be allowed to run =vain allekirjoitetut javasovellukset sallitaan)
mikäli tätä tasoa ei pudoteta, toimimaton sovellussivu pitää lisätä alla olevaan poikkeussivustolistaan:
klikkaa Edit site list, sitten Add ja kirjoita sivu riville, tässä http://www.w3.org ja OK, tämän jälkeen allekirjoittamaton sovellus sallitaan tällä sivulla, mutta ei muualla (java control näyttää silti sille varoituspopupin, ja käyttäjä voi vielä estää siitä sen ajon)
HUOM: mikäli security level pudotetaan java control panelista medium-tasolle, silloin kaikilla sivustoilla sallitaan allekirjoittamattomat javasovellukset =poikkeussivusto-listaa ei tarvita. Tämä on helpompi vaihtoehto, turvattomampi mutta käytettävissä, koska security warning varoituspopup kysytään joka tapauksessa ja käyttäjä voi estää siitä ei-halutun javapluginsovelluksen ajon.

a2. Firefox ei käynnistä automaattisesti oracle-javapluginia, se pitää aktivoida sivustokohtaisesti
kerta-aktivointi: klikkaa javaliitännäiskuvaketta osoiterivillä tai sivulla, klikkaa: salli nyt, tulee varoituspopup (java control): do you want to run this application: klikkaa Run, javasovellus käynnistyy (aktivointi koskee vain tätä selainkäyttökertaa ja kysytään uudestaan seuraavalla kerralla, samoin varoituspopup)
aktivoi-ja-muista: klikkaa javaliitännäiskuvaketta osoiterivillä tai sivulla, klikkaa: salli ja muista valinta, tulee varoituspopup (java control): do you want to run this application: klikkaa Run, javasovellus käynnistyy (javasovellus käynnistyy automaattisesti seuraavalla kerralla, mutta varoituspopup kysytään aina)

Edelläesitetty koskee allekirjoittamattomia javaselainsovelluksia oracle-javalla. Myös ns itseallekirjoitetut sovellukset käsitellään kuten allekirjoittamattomat. Suuri osa javaselainsovelluksista on näitä kahta tyyppiä. Kolmas tyyppi on tunnetun ja luotetun CAn allekirjoittama, siitä tulee oracle-javalla info-popup, laittamalla rasti siihen popup näytetään vain kerran.

Lisätietoa/ohjetta Oracle-javan info- ja varoitus-popupeista

https://www.java.com/en/download/help/appsecuritydialogs.xml

6. Testejä

Javaversion tarkistus 1 (allekirjoitettu appletti):

https://www.java.com/verify/

-Oracle-java toimii, tulee info-popup, ja sovellus antaa tiedot, OpenJDK ei toimi, tulee security warning, kun klikkaa Run, sovellus ei toimi vaan jumittaa OpenJDK:lla

Javaversion tarkistus 2:

http://javatester.org/

-Oracle-java antaa oletuksena security-virheen, a1+a2 toimien jälkeen toimii, varoituspopup kysytään, OpenJDK toimii heti ilman popupia, molemmilla sovellus antaa tiedot

Sivu http://www.w3.org/People/mimasa/test/object/java/clock
-Oracle java antaa oletuksena security-virheen, a1+a2 toimien jälkeen toimii, varoituspopup kysytään, OpenJDK toimii heti ilman popupia

Sivu http://www.aapeli.com testisivu+java-pelit (allekirjoitettu appletti)
-Oracle-java toimii, tulee info-popup, OpenJDK toimii heti ilman popupia

Comments are closed.