Java Web Start - Java Web Start
I computing var Java Web Start (også kendt som JavaWS , javaws eller JAWS ) en ramme udviklet af Sun Microsystems (nu Oracle ), der giver brugerne mulighed for at starte applikationssoftware til Java -platformen direkte fra Internettet ved hjælp af en webbrowser . Nogle vigtige fordele ved denne teknologi omfattede problemfri opdatering af versioner til globalt distribuerede applikationer og større kontrol med hukommelsestildeling til den virtuelle Java -maskine .
Java Web Start blev distribueret som en del af Java -platformen og inkluderet i downloads af JRE og JDK. Det blev forældet af Oracle i Java SE 9 og fjernet i Java SE 11. Koden til Java Web Start blev ikke frigivet af Oracle som en del af OpenJDK , og derfor understøttede OpenJDK det oprindeligt ikke. IcedTea-Web giver en uafhængig open source-implementering af Java Web Start, der i øjeblikket er udviklet af AdoptOpenJDK- fællesskabet, RedHat og Karakun AG , og som er bundtet i det officielle OpenJDK-installationsprogram. Ved siden af denne har OpenWebStart en open source- baseret implementering, der er baseret på IcedTea-Web, men tilbyder flere funktioner og kommercielle supportmuligheder.
Funktionalitet
I modsætning til Java -applets kører Web Start -applikationer ikke i browseren. Som standard kører de i den samme sandkasse som applets, med flere mindre udvidelser som f.eks. Tilladelse til at indlæse og gemme den fil, der eksplicit er valgt af brugeren via dialogboksen for filvalg. Kun signerede applikationer kan konfigureres til at have yderligere tilladelser.
Web Start har en fordel i forhold til applets, idet den overvinder mange kompatibilitetsproblemer med browsers Java -plugins og forskellige JVM -versioner. Web Start -programmer er ikke længere en integreret del af websiden, de er uafhængige applikationer, der kører i en separat ramme.
Web Start kan også starte uændrede applets, der er pakket inde i .jar -filer, ved at skrive den relevante JNLP -fil. Denne fil kan også videregive appletparametrene. Sådanne applets kører også i en separat ramme. Applet launcher understøtter muligvis ikke nogle specifikke sager, f.eks. Indlæsning af klasse som ressource.
Java Web Start er ligesom applets på tværs af platforme .
Udfasning
Med JDK9 blev flere implementeringsteknologier, herunder applets og Java Web Start, forældet af Oracle.
I marts 2018 annoncerede Oracle, at det ikke inkluderer Java Web Start i Java SE 11 (18,9 LTS) og senere. Udviklere skal overgå til andre implementeringsteknologier. Et par enkeltstående alternativer er siden opstået.
Implementering
Udvikleren forbereder en særlig XML -fil med JNLP -udvidelse. Denne fil beskriver applikationskravene, kodeplacering, parametre og yderligere tilladelser (hvis nogen). Browseren downloader denne fil som enhver anden og (efter dens MIME -type , application/x-java-jnlp-file) åbner den med Web Start -værktøj. Web Start -værktøjet downloader alle nødvendige ressourcer og starter applikationen.
Java Web Start giver en række klasser i javax.jnlp -pakken, der leverer forskellige tjenester til applikationen. Sun designet de fleste af disse tjenester med det formål at tillade omhyggeligt kontrolleret adgang til ressourcer (f.eks. Filer og systemudklipsholder), samtidig med at applikationen begrænses til autoriserede operationer.
Sun introducerede version 1.0 af Web Start i marts 2001, mens 64-bit Windows-support kun blev tilføjet i Java 6 (senere end 64-bit Java var først tilgængelig). Da J2SE 1.4 Web Start kommer som en standard del af Java Runtime Environment (JRE) kaldet javaws, skal computeradministratorer ikke længere installere det separat.
Java Network Launching Protocol (JNLP)
Programmører taler ofte om Java Network Launching Protocol ( JNLP ) i flæng med udtrykket "Web Start". JNLP -protokollen, der er defineret med et XML -skema , angiver, hvordan Java Web Start -programmer startes. JNLP består af et sæt regler, der definerer, hvordan lanceringsmekanismen præcist skal implementeres. JNLP -filer indeholder oplysninger som f.eks. Placeringen af jar -pakkefilen og navnet på hovedklassen for applikationen ud over eventuelle andre parametre for programmet. En korrekt konfigureret browser sender JNLP -filer til et Java Runtime Environment (JRE), som igen downloader applikationen til brugerens maskine og begynder at udføre den. Udviklingen af JNLP fandt sted under Java Community Process som JSR 56. Den inkluderer den oprindelige 1.0 -udgave, den efterfølgende 1.5 -vedligeholdelsesudgivelse og fra 2006 den verserende vedligeholdelsesudgivelse på 6.0.
Vigtige Web Start -funktioner inkluderer muligheden for automatisk at downloade og installere et JRE i det tilfælde, hvor brugeren ikke har Java installeret, og for programmører at angive, hvilken JRE -version et givet program har brug for for at kunne udføre. Brugeren behøver ikke at forblive forbundet til internettet for at udføre de downloadede programmer, fordi de udføres fra en lokalt vedligeholdt cache . Opdateringer af softwaren downloades fra Internettet og bliver tilgængelige, når brugeren har forbindelse til internettet, hvilket letter implementeringsbyrden.
Enhver computerbruger kan bruge JNLP ved blot at installere en JNLP -klient (oftest Java Web Start). Installationen kan foregå automatisk, således at slutbrugeren ser klientstarteren downloade og installere Java-applikationen, når den først udføres.
JNLP fungerer på samme måde som HTTP/HTML fungerer på internettet. Til gengivelse af en HTML -webside , efter at brugeren har klikket på et weblink, sender browseren en URL til en webserver , som svarer med en HTML -fil. Browseren anmoder derefter om de ressourcer, denne fil henviser til (billeder, css ), og til sidst gengiver siden, når den har modtaget tilstrækkelig information. Sidegengivelse starter normalt, før alle ressourcer er downloadet; nogle ressourcer, der ikke er kritiske for sidens layout (f.eks. billeder), kan følge efterfølgende.
JNLP afspejler denne proces; på samme måde som en webbrowser gengiver en webside, "gengiver" en JNLP -klient en Java -app . Efter at brugeren har klikket på et weblink, sender browseren en URL til en webserver, som svarer med en JNLP -fil (i stedet for en HTML -fil) til applikationen. JNLP -klienten analyserer denne fil, anmoder om de angivne ressourcer (jar -filer), venter på hentning af alle nødvendige ressourcer og starter derefter applikationen. JNLP -filen kan angive ressourcer som "doven", hvilket informerer JNLP -klienten om, at applikationen ikke har brug for disse ressourcer til at starte, men kan hente dem senere, når/hvis applikationen anmoder om det.
Eksempel
Nedenstående eksempel giver en simpel JNLP -fil til at starte appletten, med angivelse af kodebase, kilde, hovedklasse og vinduesstørrelse. Denne fil indeholder alle nødvendige referencer og er selvforsynende med at starte applikationen. Da der ikke anmodes om tilladelser, kører koden i en sandkasse. JNLP angiver også, at denne applikation kan køre offline (hvis den allerede er cachelagret) og skal opdateres som en baggrundsproces.
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://ultrastudio.org/upload" href="">
<information>
<title>Launch applet with Web Start</title>
<vendor>Foo Bar Inc.</vendor>
<offline-allowed/>
</information>
<resources>
<j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="Ray-2.3-4ca60e46-0956-3f22-983c-e3ed986dfd03.jar" main="true" />
</resources>
<applet-desc name="Ray diagram applet" main-class="raydiagramsapplet.Main" width="300" height="200">
</applet-desc>
<update check="background"/>
</jnlp>
Pack200 komprimering
For at reducere størrelsen på en Java Web Start -applikation introducerede Sun Microsystems et komprimeringssystem kaldet Pack200 i Java 1.5.0. Den kan komprimere en stor jar-fil til en niendedel af sin oprindelige størrelse, hvis den kun indeholder Java-klasser.
Java Web Start har understøttet Pack200, siden den først blev vist, men i første omgang krævede denne funktion samarbejde på serversiden og en vis ekspertise for at konfigurere. Da Sun introducerede Java SE 6u10, blev Pack200 -support tilgængelig uden behov for særlig serverunderstøttelse. Applikationsdesignere kan aktivere eller deaktivere denne funktion i JNLP -filer.
Ved langsomme forbindelser giver Pack200 et præstationsforøgelse i programmets opstartstid og downloadtid.
Signerede Web Start -applikationer
Som standard kører Java Web Start -programmer "begrænset", hvilket betyder, at de ikke har adgang til nogle systemressourcer, f.eks. Lokale filer. Men udgivere kan fjerne disse begrænsninger ved at underskrive deres Web Start -applikationer med det jarsignerværktøj, der følger med JDK .
Alternativer
IcedTea- projektet med open source giver en alternativ JNLP-implementering i IcedTea-Web . Fra version 1.7.2 fungerer den også på nyere versioner uden officiel JWS -understøttelse.
For at køre Java Web Start-baseret applikation efter udgivelsen af Java 11 har virksomheden Karakun AG frigivet open source-værktøjet OpenWebStart , baseret på IcedTea-Web. Værktøjet indeholder al funktionaliteten i IcedTea-Web og tilføjer udvidede funktioner, f.eks. Native-installatører til Mac OS, Windows og Linux. IcedTea-Web blev oprettet med støtte fra RedHat og AdoptOpenJDK .
Bemærkelsesværdige applikationer
- ArgoUML - en UML -diagramprogram .
- CrossFTP - en FTP -klient og server.
- Elluminate Live - et webkonference- / virtuelt klasseværelsesprogram.
- Ganymede -et GPL-licenseret netværkskatalogstyringssystem
- Genie Workbench - et sæt automatiseringsværktøjer til filmproduktion.
- Genevestigator , adgangsmotor til den kuraterede bioinformatiske database.
- Jake2 - En Java -port i Quake 2.
- JOSM - Java OpenStreetMap -editoren.
- muCommander En filhåndtering og Norton Commander -klon med SSH- og ftp -funktioner
- PoxNora -et 3/4 perspektiv , turbaseret strategi , kort , der kan samles .
- Wurm Online - en 3D Massively Multiplayer Online Fantasy Simulator.
- yEd - en graf og diagram editor.
Se også
- Zero Install , et lignende system, der fungerer til ikke-Java-applikationer.
- ClickOnce , Microsoft .NET 's lignende ramme.