在Eclipse中重启应用程序

9
有没有一种方法可以在Eclipse中重新启动程序?(最好只需一次点击)
我真的希望控制台视图有像重启按钮这样的东西,可以杀死应用并使用最新更改重新启动它。
这总是需要我至少三次点击。我单击绿色圆圈旁边的向下箭头,以打开下拉菜单,然后我单击选择要运行的Java主程序,停止时再单击控制台视图中的红色方形终止按钮。有没有更简单的方法来实现这一点,需要点击次数更少?
8个回答

6
在Eclipse 4.1中: 打开: windows->Preferences->keys
在"filter text"中输入:terminate and relaunch
在"binding"中添加你的快捷键(我使用shift-F5)
对于"when",选择"In Windows"
这样就可以用单个快捷键完成操作了。

2
谢谢。但是它似乎对我不起作用。我不太确定"In Windows"是什么意思。如果我的光标只在文本编辑器中,它会起作用吗?还是我需要选择一些特殊的东西?我正在使用Ubuntu Natty Narwhal和Eclipse 3.5.2。 - Ben McCann
5
我有同样的问题。只有在调试模式下运行程序才有效。 - aioobe
3
这个快捷方式在配置列表中存在,但对于我来说似乎没有起作用。 - Audrius Meškauskas
2
它只在调试模式下工作。有人能使它在默认模式下工作吗? - Saad Rehman Shah

3

2
如果您使用“自动构建”,则有很大可能性会在运行程序时应用更改。因此,大多数更改将直接生效,无需重新启动。
如果存在结构差异且Eclipse无法注入新代码(例如,如果更改匿名类或继承模式),则会提示您通过单击一个对话框来重新启动应用程序:
![alt text](https://istack.dev59.com/Jl5su.webp)
唯一的例外是当您更改静态变量的值(或类的初始化,在重新启动应用程序之前不会再次执行)时。在这种情况下,您确实需要使用另一种方法显式地重新启动。

我不确定这总是正确的。你在示例中正在运行JBoss,我认为这就是赋予你该能力的原因。 - Ben McCann
@Ben - 它适用于任何Java应用程序,截图只是一个示例。然而,正如我所写的那样,有一些限制。但只要你选择了“自动构建”并且正在调试程序,它就会尝试实时替换代码。更多信息请参见此网站 - Gnoupi
哇!我简直不敢相信我以前从没意识到这个!非常感谢你。有一个重要的提示是,你必须处于调试模式。如果你只是点击运行,这将无法工作。 - Ben McCann
这对我没用。我将一个简单的println语句更改为打印不同的字符串,但运行的应用程序仍然打印旧的字符串。我确实保存了我的文件。 - Saad Rehman Shah
这种方法对于Spring Boot应用程序并不实用。当您仅更改注释时,热代码替换会成功,但是当然应用程序仍然需要重新启动才能获取更改。 - rustyx

1
如果您正在使用Spring的Eclipse,您可以下载“Spring Tools X”插件。这将自动向顶部菜单栏添加启动和重新启动按钮。

enter image description here

它应该在任何角度上都可用。

谢谢!我以前有这个按钮,但最近在我的Eclipse实例中清理了一些流氓插件。我一直在尝试找出如何把它恢复 - 现在谜团解开了! - SteveR

1

控制台视图有一个终止按钮(一个红色的正方形),可以停止执行。然后再次点击运行按钮(绿色圆圈带三角形)即可重新开始执行。
这就是我所做的 - 两次点击 :)


如果在编辑器中打开要运行的文件,则只需两个点击,否则需要三个点击。 - Ben McCann

0

无需插件,每个 Eclipse 都能轻松实现!

此时单击该图标中的项目并按住 Shift 按钮,项目将重新启动(终止和重新启动),同时还会使用服务器端口

Like as:


0

我还没有找到一个优雅的解决方案,但如果你的程序运行时间很短,而且可以容忍偶尔出现一些实例,你可以使用运行命令。它的默认快捷键是Ctrl+F11。每次按下这个键,你的应用程序都会重新启动。但是!如果你在应用程序仍在运行时按下这个键,另一个实例将被运行,因为“旧”的实例不会自动终止。

有一些方法可以使用快捷键真正终止你的应用程序,但这需要设置断点,然后使用“终止”命令,这并不是非常优雅。


1
"...而且你可以容忍偶尔出现的一些实例..." -- 不幸的是,这排除了所有需要绑定到特定端口的服务器(如Web服务器)。 - aioobe

0
在开发自己的网络应用程序时,我添加了一段代码来检查旧实例是否正在运行,如果是,则通过网络套接字发送一个约定的命令以进行优雅关闭。虽然这种方法可能不是最好的通用解决方案,但它允许干净地关闭先前的实例,而不仅仅是杀死它。

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