¿Cuál es la diferencia entre java
, javaw
y javaws
?
Encontré en Windows que la mayoría de Java se comenzó a usar javaw
.
¿Cuál es la diferencia entre java
, javaw
y javaws
?
Encontré en Windows que la mayoría de Java se comenzó a usar javaw
.
Respuestas:
Ver documentación para:
java
comando 1 / javaw
comando 2
- La
java
herramienta lanza una aplicación Java. Lo hace iniciando un entorno de tiempo de ejecución Java, cargando una clase específica e invocando elmain
método de esa clase .- El
javaw
comando es idéntico ajava
, excepto quejavaw
no hay una ventana de consola asociada. Úselojavaw
cuando no desee que aparezca una ventana de símbolo del sistema.
javaws
comando , el " comando Java Web Start "
El
javaws
comando inicia Java Web Start, que es la implementación de referencia del Java Network Launching Protocol (JNLP). Java Web Start lanza aplicaciones / applets Java alojados en una red.
Si se especifica un archivo JNLP,javaws
se iniciará la aplicación / applet Java especificada en el archivo JNLP.
Eljavaws
iniciador tiene un conjunto de opciones que son compatibles con la versión actual. Sin embargo, las opciones pueden eliminarse en una versión futura.
Consulte también las Notas de versión de JDK 9 API, características y opciones obsoletas :
Las tecnologías de implementación de Java están en desuso y se eliminarán en una versión futura Las funcionalidades
Java Applet y WebStart, incluida la API Applet, el complemento Java, el Java Applet Viewer, JNLP y Java Web Start, incluida lajavaws
herramienta , están en desuso en JDK 9 y se eliminará en una versión futura.
Java: ejecutor de aplicaciones Java que está asociado con una consola para mostrar resultados / errores
JavaW: ( Java con ventana ) ejecutor de aplicaciones no asociado con la consola. Por lo tanto, no se muestran resultados / errores. Se puede utilizar para enviar silenciosamente la salida / errores a los archivos de texto. Se utiliza principalmente para iniciar aplicaciones basadas en GUI.
javaws: ( inicio web Java ) para descargar y ejecutar las aplicaciones web distribuidas. De nuevo, no hay consola asociada.
Todos son parte de JRE y usan la misma JVM.
javaw
debería estar en mi RUTA? (No lo es)
java.exe está asociado con la consola, mientras que javaw.exe no tiene tal asociación. Por lo tanto, cuando se ejecuta java.exe , se abre automáticamente una ventana de símbolo del sistema donde se muestran los flujos de salida y error.
El comando javaw es idéntico a java, excepto que javaw no tiene una ventana de consola asociada. Use javaw cuando no desee que se muestre una ventana de símbolo del sistema. El lanzador javaw muestra una ventana con información de error si falla.
Sospecho que javaws es para aplicaciones Java Web Start, applets o algo así.
He comprobado que la redirección de salida funciona con javaw
:
javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
Significa que si la aplicación Java imprime algo a través de System.out o System.err, se escribe en esos archivos, como también con el uso de Java (sin w
). Especialmente al inicio java
, el JRE puede escribir errores de inicio (clase no encontrada) en la tubería de salida de error. A este respecto, es esencial saber acerca de los errores. Sugiero usar la redirección de consola en cualquier caso si javaw
se invoca.
En contrario si usas
start java .... 1>log.txt 2>err.txt
Con el start
comando de consola de Windows , la redirección de salida de la consola no funciona java
ni conjavaw
.
Explicación de por qué es así: creo que eso javaw
abre un proceso interno en el sistema operativo (adecuado usando la clase java.lang.Process) y transfiere una redirección de salida conocida a este proceso. Si no se proporciona una redirección en la línea de comando, no se redirige nada y el proceso interno iniciado javaw
no tiene salidas de consola. El comportamiento de java.lang.Process es similar. La máquina virtual también puede usar esta función interna javaw
.
Si usa 'inicio', la consola de Windows crea un nuevo proceso para que Windows ejecute el comando después del inicio, pero desafortunadamente este mecanismo no utiliza una redirección dada para el subproceso iniciado.
java -cp ...
. Como casi nadie quiere eso,javaw
es la opción de hacer desaparecer esa molesta ventana.