Java Web Start

Java Web Start je tehnologija koja omogućava da startujete aplikaciju sa bilo kog mesta na Webu, kao uobičajenu Desktop aplikaciju.

Za razliku od običnih Desktop aplikacija, Java Web Start ne traži nikakav instaler, već jednostavno skine i startuje vašu aplikaciju kao da je instalirana na Vašem kompjuteru. Sigurnosne restrikcije su slične kao i kod Java Apleta, što znači da aplikacija po defaultu ne može da piše po vašem disku niti da pravi network konekcije. Kao i kod apleta, ove restrikcije se mogu ukloniti tako što se aplikacija “potpiše”.

Java Web Start je uključen u Java Runtime Environment (JRE), tako da svako ko ima instaliranu Javu (JRE) može startovati JWS aplikacije.

U primeru koji sledi pokazaću vam kako da od jednostavne standalone Java aplikacije (igra MasterMind) napravite *.jnlp – java web start fajl.


Pre svega, Java Web Start aplikacija je običan xml fajl sa ektenzijom *.jnlp u kome se odgovarajućim elementima daje opis i putanja do jar fajla na vašem serveru. U našem primeru jnlp fajl za našu MasterMind aplikaciju ima sledeći oblik:

MasterMind.jnlp

<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for Converter -->
<jnlp
  spec="1.0+"
  codebase="http://www.dinke.net/javawebstart"
  href="MasterMind.jnlp">
  <information>
    <title>Master Mind</title>
    <vendor>Dinke.net</vendor>
    <homepage href="http://www.dinke.net"/>
    <description>Master Mind Game</description>
    <description kind="short">Another one implementation of well know Master Mind Game
    </description>
  </information>
  <resources>
    <j2se version="1.4+"/>
    <jar href="MasterMind.jar"/>
  </resources>
  <application-desc main-class="MasterMind"/>
</jnlp>

Mislim da je ovde već na prvi pogled sve jasno. Codebase atribut definiše direktorijum na serveru gde se nalazi jnlp fajl čije ime zatim sledi u href atributu. Unutar resources elementa potrebno je navesti verziju jave kao i ime jar fajla u kome je i spakovana naša aplikacija (što je i najbitnije). Za informacije o ostalim elementima jnlp fajla pogledajte JWS dokumentaciju na http://java.sun.com/j2se/1.5.0/docs/guide/javaws/index.html.

A sada, sve što je potrebno da uradimo je da uploadujemo MasterMind.jar fajl i MasterMind.jnlp u odgovarajući direktorijum na našem Web serveru (definisan u Codebase atributu jnlp fajla). U našem slučaju to je http://www.dinke.net/javawebstart/ pa se aplikacije startuje sa http://www.dinke.net/javawebstart/MasterMind.jnlp .

Ako vam se desi da vam server samo prikaže običan tekst u vašem browseru, potrebno ga je konfigurisati tako da na odgovarajući način “handluje” jnlp ektenziju (mime type). Na Apache-u to radite tako što ubacite sledeće u vaš httpd.conf fajl:

AddType application/x-java-jnlp-file .jnlp

Napominjem da nije potrebno da Web server ima podršku za jsp da bi ovo radilo.