Eclipse:是否可以通过源代码编辑已知的Java源代码;附件「;

Eclipse:是否可以通过源代码编辑已知的Java源代码;附件「;,java,eclipse,jar,Java,Eclipse,Jar,我正在使用Eclipse3.4.2来开发我的代码。作为项目定义的一部分,我引用了一个附带源代码的实用程序库。到目前为止,一切都很好——当我从库中调出类并进行调试时,我可以看到这个源代码 不过,现在我想对其中一个类进行更改,同时仍然保留EclipseJava编辑器的所有功能(特别是工具提示和快速修复)。当我查看源代码时,这些特性似乎可以工作(例如,我可以按住CTRL+L键单击方法名称),但它是只读的。另一方面,我可以显式打开源文件,这将允许我编辑它,但我失去了所有的“智能”编辑功能 我最近从Int

我正在使用Eclipse3.4.2来开发我的代码。作为项目定义的一部分,我引用了一个附带源代码的实用程序库。到目前为止,一切都很好——当我从库中调出类并进行调试时,我可以看到这个源代码

不过,现在我想对其中一个类进行更改,同时仍然保留EclipseJava编辑器的所有功能(特别是工具提示和快速修复)。当我查看源代码时,这些特性似乎可以工作(例如,我可以按住CTRL+L键单击方法名称),但它是只读的。另一方面,我可以显式打开源文件,这将允许我编辑它,但我失去了所有的“智能”编辑功能


我最近从IntelliJ切换到Eclipse,在那里这是可能的,所以我希望它也在Eclipse中。请注意,虽然我可以简单地将代码作为项目包含在我的工作区中,但我真的不希望这样。工作区已经相当大了,我不想通过添加我很少接触的项目来进一步降低Eclipse的速度。

我不确定我是否正确回答了您的问题。当您向项目构建路径(JAR)添加预编译库并将源代码附加到此JAR时,当您单击JAR中的.class时,Eclipse将显示源代码。调试器也是如此,如果JAR中的类是使用行号信息编译的,那么调试器还允许您逐步遍历源代码中的代码行

现在您似乎想做的是修改JAR中的类(源代码视图只是一个覆盖,如果您附加了不同版本的源代码,它甚至可以关闭),这是不可能的,因为它们在JAR归档中以二进制形式包装——尽管Eclipse足够聪明,可以单独显示它们

我猜您会期望调试器将更改热交换到正在运行的程序中。这只能在完成更改后通过重新编译完成。通常,Eclipse会在保存Java源文件时自动执行此操作。但是,由于源文件不是工作区(或显式声明为Java源的外部文件夹)的一部分,因此它不会进行重新编译和交换


我建议将外部库的源代码作为一个项目包含在Eclipse中,不要太担心性能问题——我每天都使用3.4.2,我的工作区大约有45个开放项目,其中包含10000个类和数百万行代码。我为Eclipse虚拟机分配了一个千兆字节的RAM,在Core2Duo 2.6GHz机器上没有问题。

我并不期望Eclipse在运行它时“热插拔”我对系统所做的任何更改。我告诉Eclipse从那个JAR中获取类的“构建”形式,我希望它能做到这一点(正如它所做的那样)。如果我决定需要编辑某个碰巧以二进制形式包含的类,那么这实际上只是一个拥有Java编辑器提供的所有“帮助”的问题。很高兴知道大小限制-我们的代码基础基本相同,它阻碍了IntelliJ。只需将源代码作为单独的项目添加到Eclipse中,然后继续编辑