在调试Java代码时,"变量"和"表达式"视图中的字符串仅显示到一定长度,此后Eclipse会显示"..."。
有没有办法检查整个字符串?(这可以减轻在各个地方添加调试日志语句的痛苦)
在调试Java代码时,"变量"和"表达式"视图中的字符串仅显示到一定长度,此后Eclipse会显示"..."。
有没有办法检查整个字符串?(这可以减轻在各个地方添加调试日志语句的痛苦)
"data:image/bitmap;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQE... (长度:22869)"
。 "Max Length"选项无效,“Change value”也不行。 - falko如果您有一个非常长的字符串,我会使用不同的策略:将其转储到文件中。我在Display视图中使用一小段代码进行评估,并将数据转储到文件中。我使用Commons IO,但您也可以使用仅限于JDK的方法。
org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File("<filename>"), <expression to evaluate>);
当然,为了让它起作用,您需要在类路径中使用Commons IO JAR。如果没有,请转而使用JDK的工具。
当调试器到达您想要的字符串值的点时,只需键入sysOut语句即可。
System.out.println("The value is : \n " + query);
选择上述语句,右键->执行
它将在控制台上打印出值。
以上的方法对我都没用,而且我的Eclipse中有一些用户界面元素找不到。我正在使用STS 4.3.1。
我需要的值非常大,它是一个巨大的JSON请求的一部分。解决方法是在Eclipse调试Shell控制台中使用表达式,并输出整个值的子字符串。由于可以看到部分值,检查它并使用最后几个字符作为位置输出下一个字符串块。重复此方法直到获得所需内容:
String result = new String(reallyBigByteArrayValue, "UTF-8");
result.substring(result.indexOf("some-unique-text"));
对于基于JavaScript的Eclipse调试,"更改值"方法和"最大长度"方法都对我无效,将所需对象添加到观察(表达式)中,然后右键单击观察的表达式选择"加载完整值"是我唯一有效的解决方案,但即使这样也会在输出中插入不必要的"\n"。
注意 - 必须为"加载完整值"设置"最大长度",以便它加载值直到最大长度(默认值为10000)。请参考上面的答案了解如何设置最大长度。