У меня есть приложение Java, которое было в основном построено для Mac. Мне нужно иметь возможность сделать одну из трех вещей:Можете ли вы обнаружить Mac-пространства на Java?
Должно ли мое приложение всегда следовать текущему пространству. Смысл, если я нахожусь на рабочем столе 2 и запускаю свое приложение, то я переключусь на Desktop 3, мое приложение будет автоматически видно на рабочем столе 3. Это эквивалентно щелчку правой кнопкой мыши по значку приложения на доке, выберите «Параметры», затем выберите «Все настольные компьютеры». Если я могу каким-то образом сделать это по умолчанию для моего приложения, не требуя действий пользователя, то это было бы здорово!
Захват экрана определенного пространства. В настоящее время я использую класс Robot для захвата экрана. Если есть способ, я могу указать, какое пространство захватить, а не только текущее пространство, тогда это было бы здорово!
Уметь, по крайней мере, обнаруживать, если оставить текущее пространство.
Я начинаю наклоняться в сторону ни одного из них. Но если вы можете оказать какую-либо помощь или возможные обходные пути, это будет потрясающе!
Я также играл с GraphicsEnvironment, GraphicsDevice, GraphicsConfiguration, но не повезло. Он не возвращает никакой информации о виртуальных рабочих столах Mac (Spaces).
Что также затрудняет работу, я стараюсь избегать использования кода конкретной платформы любой ценой! Я знаю, что могу использовать JNI для этого, или может быть что-то в расширении java-apple. Но в настоящее время я использую единую ветвь кода и создаю для Mac & Windows. Я пытаюсь избежать наличия двух отдельных сборок и двоичных файлов для обеих платформ.
Вам не нужно создавать отдельные сборки - вам просто нужно определить платформу и условную логику (плюс ваш собственный код). Вы, в конце концов, хотите сделать что-то, что * очень специфично для платформы. EDIT: на самом деле Drizzt321 уже сказал это в ответ на ответ Грея. –