Jaka jest różnica między java, javawi javaws?
Odkryłem, że pod Windows większość Java jest uruchomiona javaw.
Jaka jest różnica między java, javawi javaws?
Odkryłem, że pod Windows większość Java jest uruchomiona javaw.
Odpowiedzi:
Zobacz dokumentację dla:
javapolecenie 1 / javawpolecenie 2
javaNarzędzie uruchamia aplikację Java. Robi to, uruchamiając środowisko wykonawcze Java, ładując określoną klasę i wywołującmainmetodę tej klasy .javawPolecenie jest identycznejava, z wyjątkiem tego zejavawnie ma skojarzonego oknie konsoli. Użyj,javawjeśli nie chcesz, aby pojawiło się okno wiersza polecenia.
javawsKomenda The " Java Web Start polecenie"
Do
javawsuruchamia polecenie Java Web Start, który jest wdrożenie odniesienia Java Network Launching Protocol (JNLP). Java Web Start uruchamia aplikacje / aplety Java hostowane w sieci.
Jeśli określono plik JNLP,javawsuruchomi aplikację / aplet Java określony w pliku JNLP.
Programjavawsuruchamiający ma zestaw opcji obsługiwanych w bieżącej wersji. Jednak opcje mogą zostać usunięte w przyszłej wersji.
Zobacz także Informacje o wersji JDK 9 Nieaktualne interfejsy API, funkcje i opcje :
Technologie wdrażania Java są przestarzałe i zostaną usunięte w przyszłej wersji
Funkcje apletów Java i WebStart, w tym interfejs API apletów, wtyczka Java, przeglądarka apletów Java, JNLP i Java Web Start, w tymjavawsnarzędzie , są przestarzałe w JDK 9 i zostaną usunięte w przyszłej wersji.
java: moduł wykonawczy aplikacji Java, który jest powiązany z konsolą do wyświetlania danych wyjściowych / błędów
javaw: Moduł wykonawczy aplikacji ( Java ) nie jest powiązany z konsolą. Zatem brak wyświetlania wyników / błędów. Może być używany do dyskretnego przesyłania wyników / błędów do plików tekstowych. Służy głównie do uruchamiania aplikacji opartych na GUI.
javaws: ( Java web start ), aby pobrać i uruchomić rozproszone aplikacje internetowe. Ponownie żadna konsola nie jest powiązana.
Wszystkie są częścią JRE i używają tej samej JVM.
javawpowinienem być w mojej ŚCIEŻCE? (To nie jest)
java.exe jest powiązany z konsolą, podczas gdy javaw.exe nie ma takiego powiązania. Tak więc po uruchomieniu java.exe automatycznie otwiera okno wiersza polecenia, w którym wyświetlane są strumienie danych wyjściowych i błędów.
Polecenie javaw jest identyczne jak java, z tym że javaw nie ma powiązanego okna konsoli. Użyj javaw, jeśli nie chcesz wyświetlać okna wiersza polecenia. Program uruchamiający javaw wyświetla okno z informacją o błędzie, jeśli się nie powiedzie.
Podejrzewam, że javaws dotyczy aplikacji Java do uruchamiania w Internecie, apletów lub czegoś podobnego.
Sprawdziłem, czy przekierowanie danych wyjściowych działa z javaw:
javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
Oznacza to, że jeśli aplikacja Java wydrukuje cokolwiek za pośrednictwem System.out lub System.err, zostanie zapisana w tych plikach, tak jak przy użyciu java (bez w). Zwłaszcza podczas uruchamiania javaśrodowisko JRE może zapisywać błędy początkowe (nie znaleziono klasy) na potoku wyjściowym błędu. W związku z tym należy wiedzieć o błędach. Sugeruję użycie przekierowania konsoli w każdym przypadku, jeślijavaw zostanie wywołane.
Przeciwnie, jeśli używasz
start java .... 1>log.txt 2>err.txt
W przypadku startpolecenia konsoli Windows przekierowanie wyjścia konsoli nie działa z javaani zjavaw .
Wyjaśnienie, dlaczego tak jest: Myślę, że javawotwiera wewnętrzny proces w systemie operacyjnym (odpowiedni przy użyciu klasy java.lang.Process) i przenosi znane przekierowanie wyjściowe do tego procesu. Jeśli w wierszu komend nie podano przekierowania, nic nie jest przekierowywane, a wewnętrzny uruchomiony proces javawnie ma żadnych wyników konsoli. Zachowanie java.lang.Process jest podobne. Maszyna wirtualna może również korzystać z tej funkcji wewnętrznej javaw.
Jeśli użyjesz opcji „start”, konsola Windows utworzy nowy proces dla systemu Windows w celu wykonania polecenia po uruchomieniu, ale ten mechanizm nie wykorzystuje niestety danego przekierowania dla uruchomionego podprocesu.
java -cp .... Ponieważ prawie nikt tego nie chce,javawjest wybór, aby zniknęło to irytujące okno.