Mis archivos Jar soportes tanto se hace clic, y lanzados desde la línea de comandos.
Sólo me mostrará la interfaz gráfica de usuario si existe un entorno gráfico a disposición por la comprobación GraphicsEnvironment.isHeadless()
Me gustaría ser capaz de imprimir registros a un archivo en el disco si el usuario hace clic en el doble del archivo JAR, e imprimirlos en la consola si lanzado desde la línea de comandos.
No he sido capaz de encontrar una respuesta a esto, hay alguna variable de entorno multiplataforma, o cualquier otra cosa que pueda mirar para saber si el usuario puso en marcha mi programa usando java-jar app.jar , o si se hace clic doble del. archivo jar?
Una forma de hacer esto es determinar cuando la consola es nulo:
public static void main(String[] args) {
Console console = System.console();
if(console!=null){
System.out.println("Console is not null");
}else{
System.out.println("Console is null");
}
}
Intente ejecutar el código desde la línea de comandos con el siguiente comando:
java -jar [your_runnable_file.jar]