java - 如何才能让 Eclipse 在我编辑代码时自动更新窗口中的代码?

标签 java eclipse

如何才能使 Eclipse 在我编辑代码时自动更新窗口中的代码?我以前在 YouTube 视频中见过该功能,但找不到。例如:我将 JApplet 矩形宽度从 20 更改为 10,我希望看到它立即更新。

最佳答案

我在开发视频(Minecraft)中看到 Notch 这样做了,非常棒,但我不知道他到底是怎么做到的。

-- 编辑--

这一直困扰着我,所以我去谷歌搜索“如何凹口代码”,并在博客页面 https://gun.io/blog/what-i-learned-from-watching-notch-code/ 上找到了这个。 。它没有确切说明它是如何完成的,但给出了一个很好的提示(热插拔),并使他看起来像是自己在没有外部软件的情况下进行了设置。这是最相关的部分:

令人难以置信的快速测试 他首先构建了引擎,为此,他使用了 Java JVM 1.4.2 的“HotSwap”功能,该功能在检测到类已更改时不断更新正在运行的代码。 在构建引擎时,Notch 编写了一个函数,可以连续平移摄像机并穿过墙壁并保持 View 在顶部,这样他就可以更改代码并实时查看它们产生的效果。我习惯于通过编写函数、构建它、将其安装在我要测试的设备上,然后查看结果来进行测试,这一次可能需要一分钟的时间,因此很容易看出 HotSwapping 如何节省大量开发时间。

--- 原帖续 ---

我通过使用 groovysh 获得了类似的效果,工作顺利并且可以按原样使用所有 java 类。

我通常要做的就是用java编写所有代码,然后启动“Groovysh”,它会给你一个小窗口来输入命令(你可能必须确保类路径在eclipse之外正常工作)。然后我可以“新建”任何类并一次一行地调用它们的方法。当你执行 myFrame.setSize([100,100]) 时,你会看到它立即改变。

一个好的测试是运行 groovysh 并输入如下内容:

import javax.swing.*
f=new JFrame()
f.setVisible(true)
f.setSize(100,100)

或者更好的版本:

f=new JFrame(visible:true, size:[100,100])

您将在屏幕上看到框架大小调整。您甚至可以将其拖动得更大,然后执行以下操作:

println f.getWidth()

显示您的新宽度。以这种方式交互很有趣,但如果您想实际更改类定义并看到它接受更改,那就更复杂了,我不知道 Notch 是如何做到的。我稍微研究了一下——他可能使用的是 JRebel 之类的东西

它需要一些特殊的东西,因为您必须在每次保存时动态地将类文件重新加载到正在运行的系统中——这应该会产生严重的类加载器问题。

顺便说一下,还有一种方法可以让你的 Java 程序抛出一个小 GroovyConsole,它允许你检查和修改正在运行的代码中的所有变量(但同样你不能替换现有类的定义)。

另请参阅此处的答案: Change a method at runtime via a hot swap mechanism

关于java - 如何才能让 Eclipse 在我编辑代码时自动更新窗口中的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27305879/

相关文章:

java - getSingleResult() 改变 count() 查询

java - 如何解决这个 OutOfMemoryError : Java heap space

java - Maven 无法正确安装

android - JNI jni/cyberlevel9.c :17:31: error: request for member 'NewDirectByteBuffer' in something not a structure or union

eclipse - 如何在不遇到 java.lang.ClassNotFoundException 的情况下将 JAR 库添加到 WAR 项目?类路径 vs 构建路径 vs/WEB-INF/lib

java - 使用 xml 隐藏 eclipse 中的透视图

java - JFreeChart 支持这种类型的条形图吗?

JAVA : How to see the difference in output between a synchronized and normal thread counter?

java - 将管理基本路径设置为 "/",并将 server.context-path 设置为 myApp

java - 如何将 keystore 添加到 Eclipse 项目