前言
eclipse是一个功能强大的开发工具,工具用得好,往往能提高开发效率,节省开发成本,eclipse自身提供许多功能,还有许多开放的插件提供增强的功能,这些功能若能充分利用,往往能为开发助力,达到事倍功半的效果。我们在开发过程中,往往还遇到许多问题,有时为解决这个问题会花费很多额外的时间,有时觉得eclipse很难用,其实我们不应因噎废食,只要我们善于总结,积累经验,遇到问题,积极探索解决问题,解决后把解决方法记录下来,下次就可以很快解决。基于以上原因,我总结了一些eclipse的开发功能、解决问题方面的记录或经验,以期望能给自己或其他需要的人提供参考和帮助。
1.功能集
Properties编辑插件
Myeclisep下的菜单Help->software updates->new remote site
输入名称为propertiesEdit,路径值为http://propedit.sourceforge.jp/eclipse/updates/
下载安装就可以了
Eclipse启动控制台显示行数加大
在concole中,右键,preference->run-debug->concole,将concole buffer size的值加大就可以了。
Eclipse启动参数调优
参考地址:http://apps.hi.baidu.com/share/detail/700664
目前本机参数为:D:\eclipse3.4\eclipse\eclipse.exe -vmargs -Xverify:none -XX:PermSize=20m -Xms128m -Xmx256m
Eclipse远程调试Tomcat
tomcatDebug.bat文件如下
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -jar bootstrap.jar
参见http://diaoge.javaeye.com/blog/209910
remote Debugging with Eclipse说明了远程调试的原理,说明了让java程序支持被远程调用所需要的java参数如下
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
以及如何配置远程调试weblogic、jboss和tomcat,但是里面对如何让tomcat支持远程调用并没有仔细说。再搜索,在tomcat的FAQ就找到了:
How do I configure Tomcat to support remote debugging?
如上面所示,其中的关键在于如何正确的启动tomcat。对于非windows平台下的操作来说,需要把%TOMCAT_HOME%/bin/startup.sh中的最后一行exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。如果的8000端口有其他用处的话,那么还需要修改catalina.sh文件,看其中的说明,添加一行JPDA_ADDRESS=”1044”或者其他你指定的端口。这样就可以通过startup.sh或者catalina.sh jpda start来其中支持远程调试的tomcat了。
在windows平台上是一样的步骤,只不过.sh文件改成了.bat文件了。然后需要注意以下这些地方,
1、 catalina.bat文件默认的JPDA_TRANSPORT是dt_shmem,但是Eclipse只支持dt_socket,所以需要在catalina.bat中添加一行set JPDA_TRANSPORT=”dt_socket”
2、 catalina.bat文件默认的端口是jdbconn,我也不知道这个端口是多少,因此添加一个set JPDA_ADDRESS="1044"
Eclipse查看任意JAR包/Class的源代码
参考http://yzc3096.blog.sohu.com/129028005.html
利用JAD和JADClipse插件让Eclipse查看任意JAR包/Class的源代码
1. 下载JAD ,
http://www.kpdus.com/jad.html#download
最新的1.5.8g在 http://www.kpdus.com/jad/winnt/jadnt158.zip
将展开后的jad.exe放到某个目录,例如 c:\bin\jad.exe
2. 下载JADClipse插件
http://jadclipse.sourceforge.net/download.html
最新版3.2.2(适用于Eclipse 3.2M5以上,包括3.4.x)在 http://prdownloads.sourceforge.net/jadclipse/jadclipse_3.2.2.jar?download
将展开后的net.sf.jadclipse_3.3.0.jar放入Eclipse的plugins子目录下
3. 启动Eclipse
> eclipse -clean
让eclipse重新更新Plugin信息
4. 配置Jadclipse,在 Windows - Preferences - Java - JadClipse下
配置Jad的路径为 C:\bin\jad.exe
如下图所示
5. 设置成功,则打开class文件,即可看到由JAD反编译的源代码,如下图所示
linked resource的使用
参考地址http://blog.csdn.net/wsmyf7958/article/details/1611781
快捷键Content Assist的设置
http://www.cnblogs.com/xd502djj/archive/2011/04/01/2002764.html
MyEclipse安装完成之后,有一个很常用的快捷键Content Assist(即代码提示)被默认为Ctrl + Space。
这会使得我们使用中文操作系统的计算机用起来很不方便,因为我们平时打字必用的切换打字法的快捷键,恰恰就是这个!
当然,你可以直接在Windows => Preferences... => General => Keys去替换掉这个快捷键,不过可能还会有其他快捷键与我们的中文操作系统有冲突。这里介绍一个一劳永逸,也是更“Eclipse化”的方法来改变这种尴尬局面:
在MyEclipse的启动选项中,其实有Duser.language这样一项设置,在MyEclipse安装完之后,它的默认值是等于en的,只要把它改成zh,重启MyEclipse之后,即可将Content Assist的快捷键改成Alt + /。
http://www.360doc.com/content/11/0228/17/795688_96921103.shtml
有时eclipse编码时,显示no default proposals
解决方法:windows->preferences->java>editor>conten assist->advanced选中“other java proposals”即可解决
快捷键
大小写转换:ctrl+shift+x,ctrl+shift+y
2.问题集
Eclipse项目中context root不能正常设置
有时发现,修改项目的context root,不能正常保存,可以查看如下文件,项目下.setting/org.eclipse.wst.common.component,修改文件如:
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="CASClient">
<wb-resource deploy-path="/" source-path="/WebRoot"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test"/>
<property name="java-output-path"/>
<property name="context-root" value="CASClient"/>
</wb-module>
</project-modules>
这样就可以了。
eclipse的Tomcat插件不能正常显示使用
今天,发现eclipse启动报错,后来覆盖一个新的,恢复了,但是原来的Tomcat插件却不能显示加载了,想了半天办法也没解决。后来把eclipse下的plugin目录中的tomcat插件先移除到一个地方,再重新启动,然后再把tomcat插件移回plugin目录,再重新启动,tomcat插件竟然恢复正常了,其他什么配置也没改变。这种笨办法只能记录下来,毕竟eclipse软件是别人大牛们开发的,有些错误问题只能记录下来,吃一堑长一智了。以免日后为此白白浪费时间。
eclipse中如何将项目转成dynamic web project
http://www.360doc.com/content/10/0318/22/284485_19315868.shtml
文中要点如下:
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
工程的project facts还需要java选项。
project properties->project facets选中[Dynamic Web Modules],[Java]就可以了。
如果加载服务器Server找不到这个web project,可以编辑项目下文件.setting/org.eclipse.wst.common.component中如下
<wb-module deploy-name="与项目同名">,还可以查看一下其他属性是否正确,可以一起修改过来。
就可以了。
Eclipse启动不了,闪现启动界面后退出
现象描述:启动eclipse时,启动界面闪现了一下,然后就退出了
解决方法:发现可能是jdk重装,导致不能找到正确的jre路径。可以在eclipse启动参数中加入如下参数: -vm d:\jdk1.7\bin\javaw,重新启动即可解决。
Eclipse启动时报错:需要查看日志文件.log
Eclipse启动时报错,需要查看相应打开项目的.log,打开.log文件后看到错误信息如下:
!ENTRY org.eclipse.osgi 4 0 2012-05-04 09:45:43.250 !MESSAGE Application error !STACK 1 java.lang.NoClassDefFoundError: An error occurred while automatically activating bundle org.eclipse.core.resources (76). at org.eclipse.ui.ide.IDE.registerAdapters(IDE.java:1576) at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.initialize(IDEWorkbenchAdvisor.java:201) at org.eclipse.ui.application.WorkbenchAdvisor.internalBasicInitialize(WorkbenchAdvisor.java:188) at org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1541) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) |
解决方法是:将打开工作空间目录的\.metadata\.plugins目录下文件夹全部删除,然后重新启动,恢复正常。
Eclipse的一个错误java.io.EOFExcept
1. 错误1控制台错误如下
严重: IOException while loading persisted sessions: java.io.EOFExcept
解决方法:原因是tomcat对硬盘的session读取失败,彻底解决办法一下:将work下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser即可以解决。
Eclipse下debug 出现Source not found
现象描述:eclipse调试时,进入类的设置断点后,却没有跳转到java文件,而进入class文件,显示source not found。
解决方法:
路径是Window --> Preferences --> Tomcat --> Source Path,在Source Path 标签下有行文字:Add java projects to source path(Eclipse debugger will search for source files in these projects),将要调试的project选中,然后在调试,问题解决。
eclipse运行工程时老是中断在断点ThreadPoolExecutor$Worker.run()
现象描述:eclipse运行工程时,即使未设断点,有时也会自动停在断点ThreadPoolExecutor$Worker.run()上。
解决方法:点菜单window->perferences->Java->Debug,找到 "Suspend execution on uncaught exceptions" ,取消勾选。即可解决。
java.lang.OutOfMemoryError: Java heap space
最简单的解决办法:
在eclipse中,window-->preferences-->Java-->Installed JREs
选中JRE 点击Edit
写入这句话:
-Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:MaxPermSize=256m