在调试Java代码时,视图“变量”和“表达式”中的字符串仅显示一定长度,之后Eclipse显示“...”
有没有办法检查整个字符串? (这减轻了添加日志语句以进行调试的痛苦)
答案 0 :(得分:206)
在“变量”视图中,您可以右键单击“详细信息”窗格(显示字符串内容的部分),然后选择“最大长度...”弹出菜单。相同的长度适用于表达式检查器弹出窗口和其他一些地方。
答案 1 :(得分:133)
在变量视图中,右键单击变量并选择更改值。如果您的变量很大,则必须等待几分钟(在这种情况下,Eclipse不会响应命令)但最终Eclipse将完全显示您的变量。
答案 2 :(得分:19)
如果你有一个非常长的字符串,我使用不同的策略:将其转储到文件中。我在Display视图中使用了一段代码,它被评估为将数据转储到文件中。我使用Commons IO,但你只能使用JDK方法。
org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File("<filename>"), <expression to evaluate>);
当然,您需要在类路径中使用Commons IO JAR才能工作。如果不这样做,请使用JDK工作。
答案 3 :(得分:11)
从eclipse调试视图查看String值的最佳方法如下。
1)切换到Eclipse中的调试视图
2)在变量窗格中选择所需的变量。
3)右键单击显示值的变量窗格的显示区域,然后单击“最大长度”。在“配置详细信息窗格”中输入最大字符值。
4)干杯
答案 4 :(得分:3)
当调试器到达您想要String值的位置时,只需键入sysOut语句
即可System.out.println("The value is : \n " + query);
选择上面的语句,右键单击 - &gt;执行强>
它将在控制台上打印值
答案 5 :(得分:0)
对于eclipse上基于javascript的调试,“更改值”方法和“最大长度”方法对我来说都失败了,添加了要监视的所需对象(表达式)然后右键单击观看表达式以选择“加载全部值”是唯一适用于我的解决方案,但甚至会在输出中插入不需要的“\ n”。
注意 - 必须为“加载全部值”设置“最大长度”才能正常工作,因为它会将值加载到最大长度(默认情况下为eclipse为10000)。请参阅上面的答案,了解如何设置最大长度。
答案 6 :(得分:0)
没有&#34; maxLength&#34;在Eclipse Mars中。而且,&#34;改变价值&#34;只适用于&#34;变量&#34;,而不是&#34;表达式&#34;,所以以上都不适用于我。
并且,表达式在中间切割,而不是在最后。我猜他们改变了默认行为。
唯一适合我的方法是扩展表达式名称列的宽度,然后单击表达式将其全部选中以查看全长内容。
答案 7 :(得分:0)
以上内容对我没有任何帮助,此外,无法按所述找到Eclipse中的某些用户界面元素。我正在使用STS 4.3.1。
我需要的值确实很大,它是一个巨大的JSON请求的一部分。解决方法是在Eclipse Debug Shell控制台中使用表达式,然后输出整个值的子字符串。由于您可以看到部分值,因此请检查它,并使用最后几个文字作为输出字符串的下一个块的位置。重复此方法,直到获得所需的内容:
String result = new String(reallyBigByteArrayValue, "UTF-8");
result.substring(result.indexOf("some-unique-text"));
答案 8 :(得分:0)