QUando si utilizza una trayicon, si consigli di chiamare prima il metodo isSupported() per verificare che il sistema operativo lo supporti, appunto.
Nel caso in cui la chiamata a questo metodo dovesse restituire false, si dovrebbe disattivare la trayicon e per fare questo, ho pensato io ma potrei sbagliarmi, dovrei fare questo:

codice:
//Crea il tray icon
    private static void creaTrayIcon() throws AWTException {
        //Check the SystemTray support
        if (!SystemTray.isSupported()) {
            System.out.println(LanguageResource.getText("error.systemtray"));
            firstFrame.removeWindowListener(new WindowListener() {

                public void windowOpened(WindowEvent e) {}

                public void windowClosing(WindowEvent e) {}

                public void windowClosed(WindowEvent e) {}

                public void windowIconified(WindowEvent e) {}

                public void windowDeiconified(WindowEvent e) {}

                public void windowActivated(WindowEvent e) {}

                public void windowDeactivated(WindowEvent e) {}
            });
            return;
        }
        final PopupMenu popup = new PopupMenu();
        final TrayIcon trayIcon =
                new TrayIcon(createImage("images/mySpace.png", "tray icon"));
        final SystemTray tray = SystemTray.getSystemTray();
        .......
Dimeticavo di specificare che ho collegato la minimizzazione a trayicon al bottone minimizza della barra del titolo della finestra.

Che dite?