如何运行我的虚拟屏幕java应用程序?

时间:2012-09-06 07:51:57

标签: java linux swing graphics xorg

在Linux中,我们有虚拟屏幕,如桌面1,2,3,4。大多数情况下我们使用桌面1(屏幕1,带一个显示器)。

现在,我的问题是如何告诉我的java应用程序在桌面2上启动(屏幕2,带有一个显示器)

默认情况下,当我运行java -cp /var/tmp/SystemX.jar run.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?

1 个答案:

答案 0 :(得分:1)

无边框应用程序仍应具有窗口标题。 (即xfce4-panel显示。)您可以使用以下方法检查它们是什么:

wmctrl -l <​​/ p>

从命令行。如果您很难确定哪个窗口是您的,请在打开之前尝试该命令,然后再打开它。这样,您就可以查找新窗口。