我正在使用JavaApplicationBundle为我的jar文件设置图标,现在我正在尝试从Dock中删除我的程序。
我已将LSUIElement
设置为1,但直到我在Info.plist的Java部分添加StartOnMainThread
指令后才能生效。
但是 - 然后出现问题 - GUI被锁定 - 就像程序正在执行无限循环或其他东西一样。我已将main()
更改为:
public static void main(String[] args) {
Thread queryThread = new Thread() {
public void run() {
new MainWindow();
}
};
queryThread.start();
}
但是我看不到JDialog - 即使JavaApplicationBundle进程正在运行它也不会出现(因为现在这是后台应用程序 - 我可能会缺少一些步骤来启动对话框吗?)
什么可能导致这个问题?有没有人在没有坐在Dock中的情况下运行java程序的简单应用程序包 - 我搜索了互联网,但我的搜索结果中没有出现任何内容?
由于
修改
在阅读评论后,我尝试过我已尝试过的内容,但我忘记了这一点:
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run() {
new MainWindow();
}
});
}
在这种情况下,应用程序正在运行 - 但是没有显示GUI。当我查看控制台消息时,我看到其中几个:
*** -[NSConditionLock unlock]: lock (<NSCOnditionLock: 0x1347a0> '(null)') unlocked when not locked
*** Break on _NSLockError() to debug.