Java Web Start (JWS) – wycofana technologia umożliwiająca pobieranie i uruchamianie aplikacji napisanych w językuJava bezpośrednio z Internetu, bez konieczności ich wcześniejszej instalacji.
Formalnie wyspecyfikowana w JSR-56[1]. Odróżnia się od pozostałychapletów Javy tym, że uruchomiona aplikacja nie wchodzi w interakcje ze stroną internetową, z której został pobrany plik JNLP (stanowiącyXML-ową definicję aplikacji i jej zależności) - tj. z poziomuJavaScript nie jest możliwa interakcja z aplikacją webstartową.
Rozwiązania webstartowe i aplety mogą być ładowane przez JNLP, a aplikacja JWS może korzystać z klasyjava.applet.Applet
- co często utrudnia odróżnienie tych technologii i zaklasyfikowanie konkretnej aplikacji jako apletu lub aplikacji webstartowej. Fundamentalną różnicą jest to, że aplet jest częścią serwowanego dokumentu i z poziomu JavaScript możliwe jest wchodzenie w interakcje z apletem, a webstart jest tylko technologią umożliwiającą elastyczne pobieranie i uruchamianie niezależnych aplikacji Javowych.
Pobranie „definicji” aplikacji webstartowej (JNLP) i zainicjowanie jej uruchomienia namaszynie wirtualnej Javy było zazwyczaj realizowane przez przeglądarkę internetową (stąd „web start” w nazwie). W teorii plik JNLP mógł zostać jednak przesłany m.in. e-mailem do innej osoby i wykorzystany przez nią do uruchomienia aplikacji webstartowej bez udziału przeglądarki internetowej.
Technologia została oznaczona przez Oracle jako do wycofania w Java 9[2]. Kod webstartowy został ostatecznie usunięty w Oracle Java SE 11. Dostępne pozostają niezależne implementacje webstartu, np. IcedTea-Web[3].
W Polsce popularne było stosowanie apletów do składania podpisu certyfikowanego z poziomu aplikacji webowej, gdzie aplet był komponentem potrafiącym współpracować z czytnikiem kart. Z poziomu JavaScriptu możliwe było przekazanie do apletu treści do podpisania i odebranie wyniku, w tym przypadku podpisu elektronicznego. Po rozpoczęciu wycofywania apletów część rodzimych rozwiązań przeszła na „Web Start”.
W tych aplikacjach przeglądarka internetowa użytkownika zazwyczaj pobierała webstartowy plik JNLP z parametrami wejściowymi, najczęściej był to jednorazowy tokenuwierzytelniający, bądź token sesji. Aplikacja webstartowa uruchamiała się niezależnie od przeglądarki internetowej, komunikując się z lokalnymimikroserwisami, by prowadzić interakcję z przeglądarką użytkownika.
Obecnie, ze względu na wycofanie tych technologii, podpisywanie dokumentów jest realizowane z dala od technologii webowych. W ramachW3C prowadzone są prace dotyczące udostępnienia API czytników kart poprzez Web Smart Card API[4].
Aplikacje uruchamiane poprzezJava Web Start działają wpiaskownicy. Program może jednak poprosić o pełny dostęp do systemu[5].