使java程序在计算机后台运行

使java程序在计算机后台运行,java,background,Java,Background,我看过其他一些关于这方面的帖子,但并没有从中真正了解多少 我制作了一个程序,它可以像服务器一样工作,同时捕获屏幕上的不同图片。现在,我希望该程序只是在后台激活-就像隐藏图标下显示的程序一样。未直接显示在底部任务栏上的程序。 当我将java程序执行到jar文件时,是否需要在java程序中添加一些特定代码?或者我需要以其他方式创建项目吗 我希望这是足够的解释 -提前感谢您可以通过将java.awt.SystemTrayAPI与java Swing API结合使用来实现这一点 请参阅Oracle的

我看过其他一些关于这方面的帖子,但并没有从中真正了解多少


我制作了一个程序,它可以像服务器一样工作,同时捕获屏幕上的不同图片。现在,我希望该程序只是在后台激活-就像隐藏图标下显示的程序一样。未直接显示在底部任务栏上的程序。 当我将java程序执行到jar文件时,是否需要在java程序中添加一些特定代码?或者我需要以其他方式创建项目吗

我希望这是足够的解释
-提前感谢

您可以通过将
java.awt.SystemTray
API与java Swing API结合使用来实现这一点

请参阅Oracle的以下文档:


我从中得到的超级简单的东西。我所做的只是单击添加一个出口

代码

public static void main (String [] args) {
    if (!SystemTray.isSupported()) {
        System.out.println("SystemTray is not supported");
        return;
    }
    Image image = Toolkit.getDefaultToolkit().getImage("MY/PATH/TO_IMAGE");

    final PopupMenu popup = new PopupMenu();
    final TrayIcon trayIcon = new TrayIcon(image, "MY PROGRAM NAME", popup);
    final SystemTray tray = SystemTray.getSystemTray();

    MenuItem exitItem = new MenuItem("Exit");
    exitItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            System.exit(1);
        }
    });
    popup.add(exitItem);

    trayIcon.setPopupMenu(popup);

    try {
        tray.add(trayIcon);
    } catch (AWTException e) {
        System.out.println("TrayIcon could not be added.");
    }
}

只需获取任何图像并将其添加到您的资源或保存图像的任何位置,然后创建一条路径即可。

SystemTray.getSystemTray().add(trayIcon)
完成此任务

下面是我的一个应用程序的示例:

Image imageTrayIcon = Toolkit.getDefaultToolkit().createImage(YourClass.class.getResource("trayicon.png"));
    final TrayIcon trayIcon = new TrayIcon(imageTrayIcon, "title");

   // optional : a listener
    trayIcon.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {

        if (e.getClickCount() == 2 && !e.isConsumed()) {
            e.consume();
           // process  double click
           }
        }
    });
    // optional : adding a popup menu for the icon
    trayIcon.setPopupMenu(popup);

    // mandatory
    try {
        SystemTray.getSystemTray().add(trayIcon);
    }
    catch (AWTException e1) {
        // process the exception
    }

你不需要特殊的东西。创建一个可执行的jar就足够了。”就像隐藏图标下的程序一样它是什么???如果您想从控制台启动它,但不想将它与控制台关联,您可以简单地使用
javaw
而不是
java
。因此,您希望jar文件在后台运行,但您也希望它隐藏,这样用户只有在将文件夹选项设置为“显示隐藏文件”时才能看到它@安德Lassen@BSD_啊,没有什么对不起的解释。我希望当你打开一个小图标时显示它,这个小图标显示的是在计算机上运行的程序,但不是直接显示在windows任务栏上。请看我添加的图片。