¿Cuál es la diferencia entre java
, javaw
y javaws
?
Encontré en Windows que la mayoría de Java se comenzó a usar javaw
.
java
java-web-start
javaw
usuario705414
fuente
fuente
java -cp ...
. Como casi nadie quiere eso,javaw
es la opción de hacer desaparecer esa molesta ventana.Respuestas:
Ver documentación para:
java
comando 1 /javaw
comando 2javaws
comando , el " comando Java Web Start "Consulte también las Notas de versión de JDK 9 API, características y opciones obsoletas :
fuente
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.
fuente
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.
fuente
De http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix32.60%2Fuser%2Fjava.html :
Sospecho que javaws es para aplicaciones Java Web Start, applets o algo así.
fuente
He comprobado que la redirección de salida funciona con
javaw
: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 iniciojava
, 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 sijavaw
se invoca.En contrario si usas
Con el
start
comando de consola de Windows , la redirección de salida de la consola no funcionajava
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 iniciadojavaw
no tiene salidas de consola. El comportamiento de java.lang.Process es similar. La máquina virtual también puede usar esta función internajavaw
.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.
fuente