Konwertuj js do jar

Konwertuj JS na JAR

Spakuj JavaScript w JAR lub uruchom go za pomocą osadzonego silnika JavaScript.

Jak konwertować js do jar

Urządzenie lub program oparty na Java może wymagać pakietu .jar, podczas gdy dostępny kod źródłowy znajduje się w pliku JavaScript .js. Właściwe rozwiązanie zależy od tego, czy potrzebujesz jedynie zarchiwizować skrypt, czy też przepisać go i uruchamiać za pomocą zgodnego z Java silnika JavaScript.

Czym jest format JS

Plik .js zwykle zawiera kod źródłowy JavaScript używany przez przeglądarki internetowe, Node.js, Electron, aplikacje Adobe, systemy kompilacji lub Windows Script Host. JavaScript działa w silniku takim jak V8, SpiderMonkey, JavaScriptCore lub GraalJS.

JavaScript i Java to różne języki. Zmiana .js na .jar, zmiana nazwy pliku lub umieszczenie go w archiwum ZIP nie kompiluje go do plików klas Java. Skrypty przeglądarkowe mogą również zależeć od interfejsów API, takich jak document i window, podczas gdy skrypty Node.js mogą zależeć od require, pakietów npm lub interfejsów API właściwych dla Node.

Czym jest format JAR

JAR, czyli Java ARchive, to pakiet oparty na formacie ZIP, przeznaczony dla plików klas Java, bibliotek, zasobów i metadanych. Aplikacje i biblioteki Java używają plików JAR, ponieważ grupują one wiele plików w jeden pakiet przeznaczony do dystrybucji, obsługują kompresję i mogą zawierać manifest w lokalizacji META-INF/MANIFEST.MF. Pliki JAR mogą być również podpisywane w celu zapewnienia integralności i weryfikacji wydawcy.

Plik JAR może zawierać JavaScript jako zwykły zasób, ale plik JAR zawierający wyłącznie skrypt nie jest automatycznie wykonywalny. Wykonywalny plik JAR wymaga skompilowanej klasy wejściowej Java oraz wpisu manifestu, takiego jak Main-Class; klasa ta musi następnie uruchamiać JavaScript lub interpretować go.

Pakowanie pliku JS w pliku JAR

Użyj narzędzia jar dołączonego do JDK, gdy wymagane jest jedynie archiwum JAR zawierające oryginalny skrypt.

  1. Zainstaluj JDK, na przykład Eclipse Temurin, Oracle JDK lub inną zgodną dystrybucję; sam JRE nie zawiera standardowych narzędzi do pakowania.
  2. Umieść script.js i jego zasoby w katalogu projektu, zachowując ścieżki, do których odwołuje się skrypt.
  3. Otwórz terminal w katalogu projektu i uruchom jar --create --file app.jar script.js. W razie potrzeby dodaj katalogi lub pliki, na przykład jar --create --file app.jar script.js lib config.
  4. Sprawdź archiwum za pomocą jar --list --file app.jar.

W starszych wersjach JDK równoważnym poleceniem jest jar cf app.jar script.js. Ten proces zachowuje kod źródłowy JavaScript i pakuje go, ale nie sprawia, że polecenie java -jar app.jar wykona skrypt.

Tworzenie wykonywalnego wrappera Java

Aby dystrybuować aplikację Java uruchamiającą skrypt, utwórz projekt Java z klasą uruchamiającą. Launcher wczytuje script.js z pliku JAR, tworzy kontekst silnika JavaScript, przekazuje wymagane argumenty lub obiekty hosta i wykonuje skrypt.

GraalJS można osadzić za pośrednictwem GraalVM Polyglot API oraz jego zależności Java. Dodaj wymagane zależności GraalVM SDK i silnika JavaScript za pomocą Maven lub Gradle, napisz launcher, skompiluj go i spakuj klasę launchera, skrypt, zasoby oraz zależności. Konfiguracja GraalJS różni się w zależności od wersji GraalVM i zależności, dlatego używaj wersji zależności obsługiwanych przez wybrane środowisko uruchomieniowe, zamiast kopiować nieaktualny przykład Nashorn.

Nashorn został usunięty ze standardowych dystrybucji JDK począwszy od JDK 15. Kod zależny od Nashorn musi korzystać z oddzielnie utrzymywanej dystrybucji zgodności lub zostać zmigrowany do innego silnika; aktualny JDK zwykle nie dostarcza Nashorn.

W IntelliJ IDEA typową opcją pakowania aplikacji desktopowej jest File → Project Structure → Artifacts → JAR → From modules with dependencies. Wybierz klasę launchera jako klasę główną, zdecyduj, czy zależności mają zostać wyodrębnione do fat JAR, czy pozostać obok aplikacji, a następnie zbuduj artefakt. Kompilacja za pomocą Maven lub Gradle jest zwykle bardziej powtarzalna w projektach z dużą liczbą zależności. Uruchom poprawnie skonfigurowany pakiet poleceniem java -jar app.jar.

Jeśli oryginalny plik jest aplikacją Node.js, zwykle najbardziej poprawnym rozwiązaniem technicznym jest pozostawienie go jako projektu Node.js. Wrapper Java może uruchamiać node jako zewnętrzny proces, ale system docelowy nadal będzie wymagać Node.js, a rezultat nie będzie konwersją do kodu bajtowego Java.

Opcje online i desktopowe

Nie istnieje renomowany konwerter online, który niezawodnie przetłumaczy dowolny JavaScript na równoważne klasy Java lub samodzielny wykonywalny plik JAR. Narzędzia online do archiwizacji mogą czasami utworzyć pakiet podobny do ZIP, ale nie potrafią ustalić punktu wejścia Java, zainstalować silnika JavaScript, rozwiązać zależności npm lub przeglądarkowych ani przetestować działania w czasie wykonywania.

W przypadku niewrażliwego archiwum zawierającego jeden plik internetzny kreator ZIP może być użyteczny wyłącznie wtedy, gdy odbiorca akceptuje zwykłe archiwum, a jego zawartość zostanie później zweryfikowana; zmiana nazwy pobranego pliku .zip na .jar nie zastępuje utworzenia go za pomocą JDK. W przypadku kodu źródłowego i projektów wieloplikowych używaj lokalnego polecenia JDK jar, IntelliJ IDEA, Maven lub Gradle i nie przesyłaj zastrzeżonych skryptów do usługi online.

Kontrole zgodności

Przetestuj skrypt w dokładnie tym środowisku uruchomieniowym, które jest przeznaczone dla pliku JAR. Globalne obiekty przeglądarki nie istnieją w Node.js ani GraalJS, moduły Node.js nie działają automatycznie w GraalJS, a dostęp do hosta Java może wymagać jawnej konfiguracji. Sprawdź ścieżki względne, uprawnienia do plików, kodowanie znaków, biblioteki natywne, dostęp do sieci, zmienne środowiskowe oraz wszystkie zależności innych firm.

Plik JAR zawierający wyłącznie script.js jest archiwum. Wykonywalny pakiet wymaga launchera Java, zgodnego silnika JavaScript, prawidłowego wpisu manifestu Main-Class oraz układu zależności działającego na docelowym JDK.

Porównanie formatu JS z JAR

Jak formaty JS i JAR wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.

Porównanie formatów plików JS i JAR
Cecha .JS JavaScript .JAR Java Archive
Otwarty standard Tak Tak
Kompresja Bez kompresji Oba
Typowy rozmiar pliku Mały Średni
Otwiera się w przeglądarce internetowej Tak, natywnie Nie
Dalsza edycja Łatwy Ograniczone
Obsługa metadanych Podstawowy Podstawowy
Czytelny tekstowo Tak Nie
Najlepszy do Publikacja w sieci Osadzanie w aplikacjach
Wprowadzono 1995 1996
Twórca Netscape (originally); now standardized by Ecma International Oracle (originally Sun Microsystems)
Typ MIME text/javascript application/java-archive

Baza danych obecnie nie zawiera żadnych bezpośrednich linków do konwerterów plików js.

Dodatkowe formaty dla konwersji pliku
js

Konwersja odwrotna

Konwersja do .jar
z innych formatów

Udostępnij w mediach społecznościowych: