在调试Java代码时,视图“ Variables”和“ Expressions”中的字符串仅显示到一定长度,此后Eclipse显示“ ...”。
有什么办法检查整个字符串吗?(这减轻了添加日志语句以进行调试的痛苦)
在调试Java代码时,视图“ Variables”和“ Expressions”中的字符串仅显示到一定长度,此后Eclipse显示“ ...”。
有什么办法检查整个字符串吗?(这减轻了添加日志语句以进行调试的痛苦)
Answers:
在“变量”视图中,可以右键单击“详细信息”窗格(显示字符串内容的部分),然后选择“最大长度...”弹出菜单。相同的长度适用于表达式检查器弹出窗口以及其他几个地方。
在“ 变量”视图中,右键单击变量,然后选择“ 更改值”。如果变量很大,则必须等待几分钟(在这种情况下Eclipse不响应命令),但最终Eclipse将完整显示变量。
"data:image/bitmap;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQE... (length: 22869)"
。设置“最大长度”选项不起作用,并且也设置“更改值”。
如果您的字符串很长,我可以使用另一种策略:将其转储到文件中。我在“显示”视图中使用了一段代码,该代码经过评估可以将数据转储到文件中。我使用Commons IO,但是您可以使用仅JDK方法。
org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File("<filename>"), <expression to evaluate>);
当然,您需要在类路径中使用Commons IO JAR才能正常工作。如果您不这样做,请诉诸JDK。
从eclipse调试视图中查看String值的最佳方法如下。
1)切换到Eclipse中的调试视图
2)在变量窗格中选择所需的变量。
3)右键单击显示值的变量窗格的显示区域,然后单击最大长度。在“配置详细信息窗格”中输入最大字符值。
4)干杯
此外,以上内容对我无济于事,但如上所述,找不到Eclipse中的某些用户界面元素。我正在使用STS 4.3.1。
我需要的值确实很大,它是一个巨大的JSON请求的一部分。解决方法是在Eclipse Debug Shell控制台中使用表达式,然后输出整个值的子字符串。由于您可以看到部分值,因此请检查它并使用最后几个文字作为输出字符串的下一个块的位置。重复此方法,直到获得所需的内容:
String result = new String(reallyBigByteArrayValue, "UTF-8");
result.substring(result.indexOf("some-unique-text"));