Co to jest format pliku JNLP?
Pliki z rozszerzeniem .jnlp zawierają dane przechowywane przy użyciu składni XML. Dane te opisują aplikację Java lub aplet, którego kod źródłowy znajduje się na zdalnym serwerze, przeznaczony do lokalnego uruchomienia zgodnie z protokołem Java Network Launch Protocol - pierwotnie zaimplementowanym przez Java Web Start.
Plik .jnlp zazwyczaj zawiera:
- Informacje o aplikacji - tytuł, dostawca, opis i strona główna,
- Zasoby - adres URL (atrybut
codebase), pod którym hostowane są pakiety archiwum JAR, - Ustawienia bezpieczeństwa - uprawnienia pozwalające aplikacji na wykonywanie określonych czynności,
- Element docelowy - główna klasa i parametry aplikacji lub apletu internetowego.
Plik .jnlp może również zawierać wiele różnych szczegółów dotyczących wymagań wersji JRE, ikon, preferencji skrótów i zasad aktualizacji. Pełna specyfikacja jest zdefiniowana przez JSR-56 (Sun Microsystems / Oracle), a atrybuty elementu głównego <jnlp> wskazują z powrotem na lokalizację serwera aplikacji. Java Web Start - oryginalny program uruchamiający javaws dołączany do JRE 1.4 do Java 8 - został uznany za przestarzały w Java 9 (2017) i całkowicie usunięty w Java 11 (2018). Nowoczesne alternatywy to OpenWebStart (wieloplatformowy zamiennik open-source) oraz IcedTea-Web w systemie Linux. Zawartość pliku .jnlp można przeglądać i edytować za pomocą dowolnego edytora tekstu zwykłego.
Bezpieczeństwo
RYZYKO: MEDIUMSam plik JNLP jest obojętnym kodem XML, ale to, co uruchamia, to pełna aplikacja desktopowa Java, historycznie z uprawnieniami <all-permissions/> - załączniki JNLP były udokumentowanym wektorem phishingu/złośliwego oprogramowania w latach 2010. właśnie dlatego, że javaws pobierał i wykonywał zdalny kod. Obecnie powierzchnia ataku jest mała (nowoczesna Java w ogóle nie może ich uruchomić), ale każdy, kto ma zainstalowany OpenWebStart lub starszą wersję Java 8, powinien otwierać pliki JNLP tylko z serwerów, którym ufa, i najpierw sprawdzić adres URL codebase w edytorze tekstu. Nieoczekiwane załączniki e-mail .jnlp powinny być usuwane.
Szczegóły formatu
w pigułceProgramy otwierające pliki JNLP
Szczegóły techniczne
specyfikacja| Typ formatu | Deskryptor uruchamiania aplikacji XML (tekst zwykły) |
| Główny element XML | `<jnlp>` z wymaganym atrybutem `codebase` i opcjonalnym atrybutem `href` |
| Typ MIME | `application/x-java-jnlp-file` |
| Kodowanie znaków | UTF-8 (standardowy XML; zadeklarowany w instrukcji przetwarzania `<?xml?>`) |
| Sygnatura binarna | Brak - tekst zwykły XML; pliki zaczynają się od `<?xml`, po którym następuje element główny `<jnlp>` |
| Oryginalny deweloper | Sun Microsystems (później Oracle); ustandaryzowany jako JSR-56 |
| Starszy program uruchamiający | `javaws` (Java Web Start), dołączany do JRE 1.4 do Java 8 |
| Aktualne programy uruchamiające | OpenWebStart (wieloplatformowy, open-source); IcedTea-Web (Linux) |
| Status cyklu życia | Java Web Start uznany za przestarzały w Java 9 (2017); usunięty w Java 11 (2018) |
| Element referencyjny JAR | `<jar href="..."/>` wewnątrz bloku `<resources>` łączy pakiety `.jar` aplikacji |
| Deskryptor bezpieczeństwa | `<security><all-permissions/></security>` przyznaje pełny dostęp; brak oznacza piaskownicę (sandbox) |
| Docelowa wersja JRE | Element `<java version="..."/>` lub `<j2se version="..."/>` określa minimalne środowisko wykonawcze |
| Obsługa uruchamiania offline | Element `<offline-allowed/>` pozwala na uruchomienie bez sieci po początkowym buforowaniu plików JAR |
| Obsługiwane typy aplikacji | Standardowe aplikacje Java, aplety i rozszerzenia instalatora (zagnieżdżone JNLP `<extension>`) |
| Buforowanie JAR | Program uruchamiający pobiera i buforuje pliki JAR lokalnie; atrybut `version` w `<jar>` umożliwia aktualizacje przyrostowe |
| Wydano | 2001 (Java Web Start, J2SE 1.3.1/1.4 era; standardized as JSR-56) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | jcp.org |
Konwersje JNLP
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki JNLP.