¿Determinar si la aplicación se inició a través de Java o Javaw?

Tengo un programa GUI que se ejecuta de forma predeterminada mediante el javaw.exeuso de un contenedor de inicio creado con Launch4j.

Este programa también se puede ejecutar desde la línea de comandos y luego imprimir el resultado en la consola.

¿Cómo puedo detectar si una consola está visible, por lo tanto, el texto que envío System.out.println()es visible?

Según tengo entendido, esto depende de si el programa se inició a través de Javaw / wrapper o directamente java -jar myprog.jar. ¿Hay alguna manera de distinguir ambos métodos de inicio de dentro del programa?

Respuesta 1

Si System.console()regresa null, no hay consola, lo que sucede cuando inicia el programa con en javawlugar de java. Ejemplo:

import javax.swing.JOptionPane;

public class Example {
    public static void main(String[] args) {
        if (System.console() != null) {
            System.out.println("Hello on the console");
        } else {
            JOptionPane.showMessageDialog(null, "Hello, there's no console");
        }
    }
}

Intente compilar esto y luego comience con java Exampleo javaw Example.

Respuesta: 2

Estoy mirando el ejemplo de uso proporcionado en los documentos de AWS SDK para TransferManager, en particular para el siguiente código: TransferManager tx = new TransferManager (credentialProviderChain ...

Hola, estoy tratando de cambiar los colores de mi barra de progreso de swing en Java. Inicialmente intenté usar el siguiente código: UIManager.put ("ProgressBar.selectionBackground", Color.black); UIManager.put ("...

Actualmente estoy escribiendo una aplicación Java que recibe datos de varios sensores. La frecuencia con la que esto sucede varía, pero creo que mi aplicación recibirá señales unas 100k veces por día. YO ...

¿Hay alguna manera de que pueda tener varios componentes de wicket diferentes que tengan la misma implementación de isVisible (), por ejemplo, tengo etiquetas, TextFields, DropdownChoices y etc. que tienen el mismo ...