有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

windows Java控制台应用程序已锁定

Java不是我的主要编程语言,所以我在这方面的专业知识通常是有限的

情景

该应用程序应该像服务或守护程序一样无限期地执行。它的主要目的是处理数据库中被其他进程插入的一些行

该应用程序有时会通过系统发出日志消息。出来普林顿。它还使用其他一些日志文件。我之前使用的是log4j,但现在它被禁用了

如果有帮助的话,我也在Windows服务器环境中运行这个。我现在不能使用linux

问题

问题是,在极少数情况下,我发现staging/prod env中的应用程序被锁定或似乎没有进一步处理任何DB行。在我在屏幕上按几次enter键后,它会继续前进,并像往常一样开始处理。这很奇怪,因为我不期望用户提供任何输入。应用程序的任何输入都来自命令行或DB

我也确信这不是DB的问题。应用程序未等待任何表锁。它可能与一些文件锁定或系统有关。外流被锁定。后来,直到我看到屏幕上的一些按键“唤醒”了应用程序,我才想到这种可能性

因此,我想知道是否有人可以为我指出一个方向,让我可以进一步调试它


共 (2) 个答案

  1. # 1 楼答案

    这就是方法 转到tp属性并取消选中:“快速编辑模式” remove quick edit mode checkbox

  2. # 2 楼答案

    微软以其无穷的智慧,使控制台窗口的方式,它允许您选择一个矩形区域的字符与鼠标。到目前为止还不错

    假设为了让用户在文本滚动时更容易地选择文本,他们(以他们无限的智慧)冻结由终端窗口承载的进程,如果它试图在您选择文本时发出文本。(*)

    碰巧的是,只要你用鼠标点击一个控制台窗口,他们(以他们无穷的智慧)就会将窗口置于文本选择模式,一个白色的小正方形就是明证

    这是非常不幸的,因为点击一个窗口也是我们为了简单地把窗口带到前台而做的事情。但是这里有一个巨大的问题:如果控制台窗口不在前台,那么点击它就会把它带到前台。但如果控制台窗口已经在前台,则单击它将进入选择模式。(当然,大多数人很少知道、关心或想被打扰到窗口是否已经在前台。)

    因此,总结一下:试着不要点击你的窗口。如果必须,请仅单击标题。如果您不小心单击了窗口,请按[Enter]或再次单击以使白色小选择矩形消失

    因为只要有一个白色的小矩形,你的程序就会被冻结


    (*)现在,他们可以在选择时轻松冻结窗口的显示,而无需冻结过程;他们本可以这样做,使过程的输出一直被缓冲,然后在选择完成后转储到屏幕上,但我猜他们忙于统治世界的计划,没有时间去解决这个问题。我甚至无法想象,到目前为止,由于微软的控制台窗口在选择模式下处于空闲状态,而人们的印象是他们在处理数据,因此全世界浪费了多少时间(=金钱)