我经常在Linux和Mac上向开发人员展示jhat、jps和j堆栈工具集。但是,一位开发人员最近表示,如果问题中的Java应用程序是作为Windows服务运行的,那么这些程序在Windows中是不可用的。
A 太阳领域的窃听器说了一些非常相似的话,但由于不活动而关闭。
我亲自验证了这一点,虽然我很难相信,但这似乎是真的。下面是设置:
在Windows XP、Windows 2003 Server和Windows 7下,这似乎是可重复的。Java版本1.5和1.6产生了相同的结果。
有什么方法可以从终端(即使以Admin的身份登录)到"sudo up“来获取JPS和其他工具来查看java服务?
发布于 2009-07-31 15:26:34
通过从命令提示符运行此命令,我很幸运地调试了系统用户运行的进程:
c:> time/t
11:18 AM
c:> at 11:19 /interactive cmd.exe
Added a new job with job ID = 1在未来用1分钟的时间。当"at“作业运行时,windows命令提示符将打开,并作为用户系统运行。在那里,您应该能够看到java进程。
如果服务是以本地用户的身份运行(通过双击服务并选择“登录”选项卡来检查"mmc %windir%\system32\SERVICES.MSC“中的详细信息),您可以使用”runas“执行相同的操作:
runas /user:USERNAME cmd.exe发布于 2009-07-29 09:02:22
您只得到那些“属于”您的进程-相同的用户id。
你能用jvisualvm连接到它吗?
发布于 2009-09-07 07:13:33
我只找到了将visuamvm (或其他工具)作为windows服务运行的建议:监视作为Windows服务运行的Java进程
也许其他人知道更好的解决办法。
https://stackoverflow.com/questions/1197912
复制相似问题