我最近开始开发一个Eclipse插件(现在是基本的东西),我正在努力使用“默认”方式来运行Eclipse插件(“Run as Eclipse application”)。
Eclipse正在启动另一个实例,我的插件已经安装在其中(这是默认行为)。
问题在于,当我想重新运行我的插件项目并再次按“运行”按钮(或Ctrl + F11)(并且另一个Eclipse实例仍在运行)时,我收到以下消息:
“无法启动应用程序,因为关联的工作区当前正由另一个Eclipse应用程序使用”。
错误是有道理的,当我关闭“测试”Eclipse实例时,我可以再次运行我的插件。
问题是 - “这是插件开发的正常例程吗?”。也许我错过了一些东西,例如Eclipse的特殊参数?
答案 0 :(得分:4)
这看起来很正常。错误消息是因为运行配置指定了工作空间,当您使用同一工作空间启动第二个实例时,它将被锁定并被视为正在使用。
测试插件时我通常做的是创建一个运行配置(点击“运行...”),我禁用测试时不需要的所有插件。这可以确保测试更快地启动几秒钟。确保将该运行配置保存为* .launch文件,以便下次更快地进行测试。或者它可以用于共享配置。
你可以在运行配置中配置很多,比如eclipse参数,vm参数,如果你想设置环境变量等等。所以一定要试验一下。
答案 1 :(得分:2)
在您的运行配置中。主标签 - >工作区数据 - >位置文本框添加:
${workspace_loc}/../runtime-EclipseApplication${current_date:yyyyMMdd_HHmmss}
注意后缀 $ {current_date:yyyyMMdd_HHmmss} ,每次启动应用程序时都会创建新工作区。因此,您不会收到任何错误消息,指出工作区已被锁定。
但要小心,因为文件 .metadata 对于不同的实例会有所不同,因为它们的工作空间不同。因此,由不同实例存储/检索的首选项不同步。
答案 2 :(得分:2)
您可能遗漏了一个重点:Eclipse支持Java hot code replacement。因此,在许多情况下,您可以在应用程序Eclipse实例运行时修改Java代码,保存代码并继续而不重新启动。
如果无法更换热代码,Eclipse会告诉您,因此您始终知道编辑更改是否应用于正在运行的实例。
这适用于更新版本的JVM,因此请考虑升级到最新的Java 7版本,即使您编写的代码符合Java 1.5或6。