子在川上曰

  逝者如斯夫不舍昼夜
随笔 - 71, 文章 - 0, 评论 - 915, 引用 - 0
数据加载中……

Eclipse无法查看源代码的解决

提问:
我现在在xp系统下使用eclipse3.12+3.11语言包,根据《Eclipse从入门到精通》一书中关于查看源代码的内容,我在eclipse3.12+3.11语言包上操作,无法进行,提示有错误;然后,我在纯英文的eclipse3.12下进行操作,能够看到JDK的源代码;最后,再进入eclipse3.12+3.11语言包环境,现在可以在中文环境下查看JDK的源代码。(是否能告诉我是什么原因,时不时语言包的问题。)但是,我始终无法按照书上说的查看eclipse源代码,因为我的eclipse目录D:\eclipse312\plugins下只有org.eclipse.jface.text_3.1.2.jar和org.eclipse.jface_3.1.1.jar两个文件,没有org.eclipse.platform.source_3.01(或者是3.12等)的文件夹。
请教:我应该怎么作才能看到eclipse的源代码?



回答:

最新常有人提出类似的问题,今天我特意尝试了一下,并没有出现提问者所说的情况,真是奇怪。
我在这里复述一下我的实践过程吧:
 
先说说我的系统环境:Windows XP+JDK1.5。
关于JDK,环境变量设置了JAVA_HOME,但没有设置classpath。
 
(1)下载Eclipse。文件名:eclipse-SDK-3.1.2-win32.zip
说明:和你下载的文件名是一样的吗?
 
(2)下载中文包:NLpack1-eclipse-SDK-3.1.1a-win32.zip、NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip
说明:中文包共两个文件,是基于3.1.1的,不过Eclipse3.1.2也可以用它来汉化。
 
(3)将Eclipse安装在桌面上(反正我是临时实验用,放在桌面上方便),用link法安装中文包(两个文件)。
 
(4)启动Eclipse后,汉化正常。
 
(5)创建一个插件项目,选择使用了“Hello,World”模板。
 
(6)共查看了以下四个类的源码,都很正常没有报错。这个四个类是:插件的AbstractUIPlugin类、SWT的Button类、JFace的TreeViewer类、JDK的ArrayList类

后记:我又试了创建一个普通项目,然后按照《Eclipse从入门到精通》中所说的那样,添加了几个对SWT库的引用后,转变成一个支持SWT开发项目。再次查看上面所说四个类的源代码,一切正常。
 

估计读者错误原因:

(1)下载的Eclipse不是SDK版,所以没有包含有源代码。请对照前面的下载文件名,保证相同。并且SDK应包含以下源文件库目录(目录名都含有source字符)。
org.eclipse.jdt.source_3.1.2
org.eclipse.pde.source_3.1.2
org.eclipse.platform.source.win32.win32.x86_3.1.2
org.eclipse.platform.source_3.1.2
org.eclipse.rcp.source.win32.win32.x86_3.1.2
org.eclipse.rcp.source_3.1.2
 
(2)库引用不全。(但如果你在英文版下可以,在中文版下不行,那么这个错误原因可以排除)
 
 

posted on 2006-04-26 12:46 陈刚 阅读(24929) 评论(29)  编辑  收藏 所属分类: Eclipse从入门到精通

评论

# re: Eclipse无法查看源代码的解决  回复  更多评论   

我使用的是xp sp2+JDK1.5,下载的是eclipse-SDK-3.1.2-win32.zip,eclipse的安装目录是D:\eclipse312

下载的中文包:NLpack1-eclipse-SDK-3.1.1a-win32.zip,
没有下载NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip,
随便问一下,NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip包中的文件可以放在NLpack1-eclipse-SDK-3.1.1a-win32.zip里面吗?

至于插件,我安装了SWT Designer_v4.3.1,采用links方式,
还有org.eclipse.tomcat_4.1.30.1,采用的是直接复制到plugins目录下。

环境变量两个都设置了,

只建立了一个普通项目和类HelloWorld

另外,关于查看eclipse源代码的问题,是不是3.12版和您《Eclipse从入门到精通》书中所用版本在文件结构上有所不同呢,如果是在3.12版力如果去查看JFace的源代码呢?
2006-04-26 15:08 | happy1973

# re: Eclipse无法查看源代码的解决-补充  回复  更多评论   

在查看JFace类的实例中,
第一步(3),我选择plugins->org.eclipse.jdt_3.1.0.jar,
第二步,输入“TableViewer tv;”后,点ctrl+shift+o后eclipse左边框出现提示“从未读取过局部变量tv”,
在ctrl+单击TableViewer后出现如下内容:
由于发生内部错误而无法创建此部件。产生该故障的原因是:Unmatched braces in the pattern.
2006-04-26 15:36 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

@happy1973
把NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip装上再试试。

不要把NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip放在NLpack1-eclipse-SDK-3.1.1a-win32.zip里面。两个都用link方式安装,就把它们当做两个不同的插件。

查看源代码是很轻松的一件事,我这里并没有做任何特殊的设定。装上eclipse,建立好项目就可以查看了。


另外,把它你项目下.classpath的内容帖出来,我看看。
2006-04-26 15:59 | 陈刚

# re: Eclipse无法查看源代码的解决-.classpath  回复  更多评论   

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jface_3.1.1.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
2006-04-26 16:44 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

另附错误日志的信息:

错误 2006-04-26 16:50:30.406 Unable to create editor ID org.eclipse.jdt.ui.ClassFileEditor: Unmatched braces in the pattern.
java.lang.IllegalArgumentException: Unmatched braces in the pattern.
at java.text.MessageFormat.applyPattern(MessageFormat.java:468)
at java.text.MessageFormat.<init>(MessageFormat.java:350)
at java.text.MessageFormat.format(MessageFormat.java:803)
at org.eclipse.jdt.internal.core.util.Messages.bind(Messages.java:361)
at org.eclipse.jdt.internal.core.util.Messages.bind(Messages.java:327)
at org.eclipse.jdt.internal.core.util.Disassembler.disassemble(Disassembler.java:600)
at org.eclipse.jdt.internal.core.util.Disassembler.disassemble(Disassembler.java:462)
at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor$SourceAttachmentForm.updateCodeView(ClassFileEditor.java:400)
at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor$SourceAttachmentForm.createControl(ClassFileEditor.java:212)
at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.verifyInput(ClassFileEditor.java:715)
at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.createPartControl(ClassFileEditor.java:672)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:609)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:384)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552)
at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:223)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2362)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2295)
at org.eclipse.ui.internal.WorkbenchPage.access$9(WorkbenchPage.java:2287)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2273)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2268)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2249)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:263)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:140)
at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open(OpenActionUtil.java:49)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:169)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:141)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:226)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:198)
at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlink.open(JavaElementHyperlink.java:55)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseUp(HyperlinkManager.java:388)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:137)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3125)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2758)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:494)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
at org.eclipse.core.launcher.Main.run(Main.java:973)
at org.eclipse.core.launcher.Main.main(Main.java:948)

2006-04-26 16:52 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

问题就出在你的.classpath文件上。你只引用了org.eclipse.jface_3.1.1.jar是不够的。你参照这篇文章http://www.blogjava.net/chengang/archive/2006/04/24/42871.html,把库引用加全了,再试试。
2006-04-26 17:09 | 陈刚

# re: Eclipse无法查看源代码的解决  回复  更多评论   

我的eclipse里面没有org.eclipse.osgi_3.0.1、org.eclipse.core.runtime_3.0.1、org.eclipse.ui.workbench_3.0.1、org.eclipse.swt.win32_3.0.1、org.eclipse.jface_3.0.0、org.eclipse.jface.text_3.0.1、org.eclipse.jface.text.nl1_3.0.1、org.eclipse.jface.nl1_3.0.0、org.eclipse.ui.workbench.nl1_3.0.1这些文件夹,相似的也没有,只有一些名字类似的.jar文件。
您写的《手工创建一个 SWT 项目》应该也是建立在eclipse3.01的基础上的,那么在3.12中应该如何操作呢
2006-04-26 19:04 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

@happy1973

创建一个插件项目,然后创建向导里有几个模板可选择。你可以选择“Hello,World”模板(其他的也行)。

在这个新的插件项目的库引用里有两项:JRE系统库、插件依赖项。打个插件依赖项,这里面列出的,就是你在SWT项目中需要添加的。 



2006-04-26 19:57 | 陈刚

# re: Eclipse无法查看源代码的解决  回复  更多评论   

我按照您说的方法操作,现在已经可以看到eclipse的JFace的源代码了,多谢!
还想问一下,我如果以后再安装别的插件,是否还要再创建一个插件项目,检测所需要的插件呢?
另外,eclipse3.12在使用上和eclipse3.01还有什么不一样的地方吗?我指的是基本使用上,以及您写的书上提到的操作和实例。
2006-04-26 22:47 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

如果以后再安装别的插件,是否还要再创建一个插件项目,检测所需要的插件呢?
答:不需要。如果你要用到这个插件所带的JAR包,你就手工把它加入到库引用中就行了。

eclipse3.12和eclipse3.01在界面使用,及开发上都是一样的。最大的不同是开发初期的配置,因为它底层的一些包做了调整。书上的实例都可以顺畅的运行。
2006-04-27 07:04 | 陈刚

# re: Eclipse无法查看源代码的解决  回复  更多评论   

又要麻烦您了,现在,我根据书上说的配置cvs服务器,在配置eclipse的客户端时无法连接cvs服务器,在“添加cvs资料库”单击“完成”时出现一个“无法验证”窗口,内容是“验证位置时出错:“发生了I/O异常:连接被拒绝:c:\cvsfile:no such repository”还是要保持位置吗?”
我应该如何作呢?
2006-04-27 12:27 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

问题解决,存储库路径改为/cvsfile,问题解决,但我不知道是为什么?
2006-04-27 12:47 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

还有一个问题就是,cvs设置成功后,在java项目中的文件HelloEclipse.java变成了HelloEclipse.java1.1(ASCII-kkv),这是什么意思呢
2006-04-27 13:03 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

错:c:\cvsfile
对:c:/cvsfile
仅仅一个斜杠的区别

1.1是它的版本号
2006-04-27 13:23 | 陈刚

# re: Eclipse无法查看源代码的解决  回复  更多评论   

我使用c:/cvsfile 也不行,必须是/cvsfile 才行。
ASCII-kkv是不是指文件是ASCII码文件
2006-04-27 13:29 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

如果要实践一下cvs的功能,是不是一定要有两个完全相同的eclipse,包括插件也要一样。
怎样手工把jar包加入到库中,插件里所有的jar包都要加入库中吗
2006-04-27 15:58 | happy1973

# re: Eclipse无法查看源代码的解决  回复  更多评论   

不需要两个完全相同的eclipse,一个eclipse也就行了。将CVS导出两次,变成两个项目就OK了。当在导出第二个项目时把项目名改一下,这样就是两个不同名称的项目,但内容都是一样的,都指向到CVS,这就可以模拟两个用户在使用CVS了。

怎样手工把jar包加入到库中。
答:参考P26图4.25

插件里所有的jar包都要加入库中。
答:是
2006-04-27 16:18 | 陈刚

# re: Eclipse无法查看源代码的解决  回复  更多评论   

我使用c:/cvsfile 也不行,必须是/cvsfile 才行。
答:检查你的操作步骤,是否和书中一样。检查你的安装目录是否为c:/cvsfile

ASCII-kkv是不是指文件是ASCII码文件
答:是

2006-04-27 16:19 | 陈刚

# re: Eclipse无法查看源代码的解决  回复  更多评论   

在英文版正常情况下,网友提出解决方法,试了一下,成功! 如下:


解决Eclipse3.x安装中文语言包后,查看某个JAVA类(没有关联的源文件)源代码时候的错误Unmatched braces in the pattern

为这个问题头疼了好久,网上一直没有找到答案;今天在看GEF代码的时候又出现了(没有下载GEF的源代码),终于下决心自己解决这个问题。
定位问题应该是语言文件的问题,根据错误提示,找到了org.eclipse.jdt.internal.core.util. Messages类的disassembler_opentypedeclaration字段,然后在语言包插件的org.eclipse.jdt.core.nl1_3.1.1.jar文件里面找到对应的messages_zh.properties,找到这一段disassembler_opentypedeclaration=\ “{”,而其他语言文件的内容是disassembler_opentypedeclaration=\ '{',应该是自动转换的时候的错误,更改这一段和其他语言文件一样,然后打包(方法多多,不再叙说)替换原来的,成功。
2006-04-29 16:21 | ella

# re: Eclipse无法查看源代码的解决  回复  更多评论   

我在可视化编程的时候,出现了一个问题,它的日志是:
SESSION 2006-04-30 14:52:55.296 -----------------------------------------------
eclipse.buildId=I20050627-1435
java.version=1.4.2_05
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN
Command-line arguments: -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.jem.proxy 2 0 2006-04-30 14:54:43.125
!MESSAGE IWAV0138E Remote VM terminated too soon. See .log file for trace of output. For VM "Project (hui)-Beaninfo".
IWAV0072I Remote VM terminated before any commands can be sent. Following are the error and output streams.
-- Error Stream --

-- Output Stream --

-- End of Stream Output --


!ENTRY org.eclipse.jem.proxy 2 0 2006-04-30 14:54:43.140
!MESSAGE IWAV0138E Remote VM terminated too soon. See .log file for trace of output. For VM "Project (hui)-VM for hui".
IWAV0072I Remote VM terminated before any commands can be sent. Following are the error and output streams.
-- Error Stream --

-- Output Stream --

-- End of Stream Output --
我总是解决不了,不知道哪里出错了!
2006-05-02 14:24 | 沁心梦

# re: Eclipse无法查看源代码的解决  回复  更多评论   

可能我发错了版块,不好意思,不过我真的很想有人能给我回复哦!谢谢!
2006-05-05 23:03 | 沁心梦

# re: Eclipse无法查看源代码的解决  回复  更多评论   

老大,3.1.2sdk版本plugin下的jface3.1.1根本就没有source code的jar,您老是怎么看到的阿?

2006-06-12 16:50 | zjufish

# re: Eclipse无法查看源代码的解决  回复  更多评论   

这个问题就在设置环境变量上。

如果设置了JAVA_HOM的话,eclipse可以自动找到src.zip文件,而只设置classpath的时候eclipse就找不到src.zip文件。

中文环境下出错是因为多语言功能包在的中文模式可能有错误。导致了eclipse出错。而繁体中文和英文的语言没有这个错误,所以,可以执行,然后提示找不到方法的源代码。在这个时候可以通过eclipse设置读取源代码的路径
把这个路径直接指向src.zip文件就可以了
2007-06-09 14:18 | 姚磊

# re: Eclipse无法查看源代码的解决  回复  更多评论   

更正:
和环境变量配置没有关系,只是在简体中文的时候如果没有指定源代码路径或指定了错误的代码路径时会出错。
2007-06-11 10:32 | 姚磊

# re: Eclipse无法查看源代码的解决  回复  更多评论   

To zjufish: 每个版本的Eclipse都有jface的source code。3.1.2版的源代码目录比较深,我记得好象是被归在了RCP的一个目录里。你可以自己查一下,用windows的目录搜索,搜索关键字source。


to 沁心梦:你用的是什么插件?错误信息里关键是这一条
Remote VM terminated too soon. See .log file for trace of output.
(因为超时,远程VM被终止。详细原因查看.log日志)
2007-06-12 10:09 | 陈刚

# Eclipse3.2.2 没有jfacesrc.zip  回复  更多评论   

陈老师

刚刚下载的Eclipse3.2.2 没有jfacesrc.zip, 能把Eclipse3.1.2的jfacesrc.zip做个连接下载吗
2007-06-17 08:54 | rainwalker

# re: Eclipse无法查看源代码的解决  回复  更多评论   

to rainwalker:Eclipse3.2.2自带了JFace的源码。如果你创建一个插件项目,用HelloWorld模板。这时在SampleAction里就有用到JFace的类,不用多余设置,可以轻轻看到源码。
2007-06-18 08:40 | 陈刚

# re: Eclipse无法查看源代码的解决  回复  更多评论   

陈老师您好,请教一个和主题类似的问题。关于Eclpse看JDK的源代码问题。
我开发时用Eclpse看JDK的源代码的时候,把src.zip导进来之后,com.sun, java, javax, org, sunw这些包下面的源代码都能看,只有sun 包下的代码不能看;比方说sun.swing.FilePane这个类就不能看。不知道为什么。
希望你能给指导一下,谢谢。
2007-06-21 16:50 | leigh

# re: Eclipse无法查看源代码的解决  回复  更多评论   

to leigh: 你看看JDK的src.zip里是否含有sun.swing.FilePane的源代码,如果没有,当然显示不了,这时你可以去SUN网站或GOOGLE一下是否有更全的swing源代码包。
2007-06-22 09:07 | 陈刚

只有注册用户登录后才能发表评论。


网站导航: