我有一个简单的 java gui 应用程序,它会在任务栏上(右侧时钟旁边)显示一个绿色或红色的图标。
我创建了一个指向我的 .jar 文件的新计划任务,并且一切正常,我可以看到它在任务栏上创建了一个正方形,但由于某种原因,它没有显示绿色或红色图标。
如果我双击运行 .jar,它就可以正常工作。如果我通过 .bat 运行它,它就可以正常工作。
我想打开 .jar 文件,不需要任何其他东西,例如控制台窗口等。
为什么它不起作用?
ImageIcon icon = new ImageIcon("iconOK.jpg");
Image image = icon.getImage();
PopupMenu popup = new PopupMenu();
trayIcon = new TrayIcon(image);
tray = SystemTray.getSystemTray();
trayIcon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(true);
}
});
try {
tray.add(trayIcon);
} catch (AWTException e) {
System.out.println("TrayIcon could not be added.");
}
答案1
好吧,我找到了解决办法。我必须用另一行替换其中一行:
这个:
ImageIcon icon = new ImageIcon("iconOK.jpg");
用这个:
ImageIcon icon = new ImageIcon(getClass().getClassLoader().getResource("iconOK.jpg"));
答案2
我仍然遇到一些困难。如果我通过任务计划程序运行任务,我的程序将无法正确写入文件。如果我手动执行,它仍然可以工作,但如果我使用任务管理器执行,它就不行。有人知道为什么吗?
答案3
很有趣的是,解决方案是在调度程序中添加“开始于”路径:
C:\Users\me\Desktop\test
没有任何引号。因此 .jar 文件/脚本的路径没有引号。参数中没有任何内容。以及文件所在文件夹的路径。我很高兴 :)