java – 如何在stdout,stderr上使远程调试JVM不输出文本?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何在stdout,stderr上使远程调试JVM不输出文本?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含892字,纯文字阅读大概需要2分钟。
内容图文
我正在编写一个语言服务器(在lsp4j上面),需要调试我的语言服务器.语言服务器协议服务器使用stdin和stdout与客户端通信.
现在我想调试从客户端启动的服务器(VSCode),因此我在生成的JVM进程的调试标志中添加了:
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999
突然执行此操作后,服务器不再工作,即使suspend = 0并且我确认端口已打开并且没有发生防火墙malarkey.
我决定手动运行命令行,我发现进程在收到调试参数后所做的第一件事是将以下内容输出到stdout:
Listening for transport dt_socket at address: 9999
(没有双引号发出)
我相信这是我无法调试语言服务器的原因,因为输出任何不属于语言服务器协议spec的stdout或stdin强制客户端拒绝服务器.
因此,我的问题是,以一种迂回的方式询问是否可以通过另一个JVM参数在stdout,stdin,stderr上生成内部JVM消息?
解决方法:
更新:
答案似乎是“,quiet = y”作为附加参数.
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999,quiet=y
感谢Christian Dietrich在lsp4j github页面上提供解决方案.
内容总结
以上是互联网集市为您收集整理的java – 如何在stdout,stderr上使远程调试JVM不输出文本?全部内容,希望文章能够帮你解决java – 如何在stdout,stderr上使远程调试JVM不输出文本?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。