Приложение JavaFX скрывает значок док-станции OSX

Мне нужно скрыть значок дока моего приложения javafx. В обычном Java-приложении это может быть достигнуто с помощью следующего свойства:

System.setProperty("apple.awt.UIElement", "true");

Однако это не работает с JavaFX.

Спасибо!


person user1786646    schedule 19.06.2014    source источник


Ответы (2)


Только что попробовал. Вы должны изменить *.app/Contents/Info.plist и добавить

<key>LSUIElement</key>
<string>1</string>

Простой пример:

    <?xml version="1.0" ?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
     <dict>
     <key>LSUIElement</key>
    <string>1</string>
...

Для меня это работало на связанных приложениях javaFX

person Chris    schedule 13.08.2014

В соответствии с JavaFX вы не можете скрыть значок дока в приложении JavaFX. Просмотрите эту ссылку.

Есть два способа скрыть значок дока.

  • Стандартный способ Apple, просто измените *.app/Contents/Info.plist и добавьте <key>LSUIElement</key> <string>1</string>.
  • Запустите приложение как приложение AWT и скройте значок дока, используя системное свойство. После настройки системного свойства вызовите основной метод JavaFX, и теперь приложение JavaFX вступит во владение без значка дока. См. пример кода ниже.
/**
 - This class is intended to start application as AWT application before initializing
 - JavaFX application. JavaFX does not support dock-icon-less application so we are 
 - creating JavaFX application from AWT application so that we can achieve the desired
 - functionality.
 - */

public class AWTMain {

    public static void main(String[] args) {

        // This is awt property which enables dock-icon-less
        // applications 
        System.setProperty("apple.awt.UIElement", "true");
        java.awt.Toolkit.getDefaultToolkit();

        // This is a call to JavaFX application main method.
        // From now on we are transferring control to FX application. 
        FXMain.main(args);
    }
}

Здесь FXMain упоминается как предыдущий класс с основным методом.

Вам также нужно будет изменить файл .pom, если вы используете maven и другие места, где вы упомянули основной класс для приложения.

Это мой первый ответ здесь, извините за форматирование.

person Muhammad Usman    schedule 07.10.2015