在Eclipse中,交互式控制台(调试视图)有什么用?

13

有些讨论帖子 问如何在Eclipse中使用“交互式控制台”,因为你无法在该控制台中输入任何内容。

一些人建议您可以“显示视图”来执行代码。

那么,“交互式控制台”的目的是什么?


通过交互式控制台,您可以评估Java代码并在程序运行时将其输入程序。因此,在程序运行时,您可以插入其他代码。我猜想,如果它在运行时被禁用,则只能在断点处使用它(我自己从未使用过它)。要设置断点,请找到源文件,然后双击行号右侧,使蓝色圆点出现。然后打开调试模式运行程序。 - Bartvbl
3个回答

27

Eclipse默认安装中没有“交互式控制台”。它只有一个“显示”视图,您可以在当前断点的范围内以调试模式执行Java代码(用于评估表达式或更改数据)。

如果您有“交互式控制台”,那么很可能是插件提供的视图。我了解到Google插件可能会提供此功能。或者可能是JRuby或Groovy等脚本语言的插件。

如果您说您有“交互式控制台”但无法输入,则我怀疑您不在正确的视图模式下(可能您没有使用提供该视图的脚本语言)。


1
将org.eclipse.dltk.debug.ui添加到插件中,以便贡献“交互式控制台”视图。 - Kevin
嗨,我遇到了你提到的第三个问题。我无法在交互式控制台中键入任何内容。我只使用PHP工作。我该如何找出问题出在哪里? - Gibbs
2
所提到的控制台受 Eclipse 动态语言工具包 (DLTK) 帮助,不幸的是,在 Java 调试会话中默认启用,导致很多混淆。对于像 Perl 和 Python 这样的动态语言,开发人员可以在调试会话期间输入代码并实时评估。对于 Java 调试会话而言,该控制台是无用的。 - Gautam

6

很抱歉,但被接受的答案是不正确的。

Eclipse中的控制台是交互式的,当运行应用程序从控制台输入流读取时。

它并不是Eclipse通常帮助调试的功能,它旨在允许基于控制台的Java应用程序在调试时从用户读取输入(例如,我可以在控制台提示中键入)。


1
我并没有说“Eclipse控制台不是交互式的”。我的意思是,在其默认配置中,Eclipse没有“交互式控制台”(指称为“交互式控制台”的视图)......当然,输入流将连接到控制台,但此线程中人们谈论的“交互式控制台”是另一回事。 - mmey

2

之前的答案(已被接受但不正确):

The interactive console allows you to execute some extra code, while debugging, when stopped at via a `breakpoint`.

This is a really beneficial feature when you are debugging and suddenly want to change the value of variable, execute a sysout or some utility function. 

正确答案请查看@mmey的回答。


4
但是当我停在断点处时,无法在交互式控制台中输入任何内容;但我可以使用“显示(display)”视图进行调试:https://dev59.com/gHNA5IYBdhLWcg3wrP2q,那么“交互式控制台”有什么作用呢? - Howard
1
我的经验与霍华德的类似。在我的Eclipse Juno安装中,我在Java应用程序中停在断点处,但交互式控制台不允许我输入任何文本。这是一个错误还是我错过了什么?这是否可能是不同调试环境的一部分(如Javascript调试或Ruby工具包)? - Bob Kuhar
请注意,您可以通过在“表达式”视图中键入要运行的方法来执行sysout或某些实用程序函数。如果您在那里键入System.out.println(“foo”),则每当Eclipse评估表达式以计算其值时,“foo”都会打印在控制台上。 - jutky
这个答案不准确。真正的答案在@mmey下面,还要阅读所有评论才能清楚地了解情况。 - Gautam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接