2012-09-06 2 views
2

В Linux у нас есть виртуальные экраны, такие как рабочий стол 1, 2, 3, 4. В большинстве случаев мы используем рабочий стол 1 (экран 1 с одним монитором).Как я могу запустить приложение java для виртуальных экранов?

Теперь мой вопрос, как я могу сказать, мой Java-приложение для запуска на рабочем столе 2 (экран 2, с одним монитором)

По умолчанию, когда я Запуск Java -cp /var/tmp/SystemX.jar запуска .X он запустится на рабочем столе 1, на экране 1. Что не мое дело.

Пробовал: следующее, но не помогло, оно работает для сценария с двумя мониторами. Не то, что я ожидаю.

screen = Toolkit.getDefaultToolkit().getScreenSize(); 
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
    GraphicsDevice[] screenDevices = ge.getScreenDevices(); 
    for (int i = 0; i < screenDevices.length; i++) { 
    System.out.println(screenDevices[i].getIDstring()); 

    int screenWidth = 1024; 
    int screenHeight = 764; 
    if (screenDevices[i].getDisplayMode()!=null) { 
     DisplayMode dm = screenDevices[i].getDisplayMode(); 
     screenWidth = dm.getWidth(); 
     screenHeight = dm.getHeight();   
    } 
    System.out.println("[myResolution]: " + screenWidth + " " + screenHeight); 
    screen.width = screenWidth; 
    screen.height = screenHeight; 
    } 

Развейте:

#!/bin/sh 
(export DISPLAY=:0.0 && java -cp /var/tmp/SystemX.jar run.X) & (wmctrl -r "WINDOW_TITLE" -t DESKTOP_NUMBER) 

* Но что, если мое заявление граничащие, когда он не имеет заголовка окна? как я могу сказать wmctrl?

+0

Вы можете запускать обычные приложения, то есть окно терминала, на конкретном экране? Я сейчас на окнах (в офисе), поэтому не могу попробовать себя, но я думаю, что для этого есть стандартные варианты для X11-программ, и я думаю, что они также могут быть переданы в командную строку Java. – Axel

ответ

1

Приложения без полей должны иметь названия окон. (., Т. Е xfce4 панели шоу) Вы можете проверить, что они с помощью:

wmctrl -l

из командной строки. Если вам сложно определить, какое окно принадлежит вам, попробуйте выполнить команду перед ее открытием, а затем, когда она будет открыта. Таким образом, вы можете просто найти новое окно.

Смежные вопросы