MyEclipse相关用法介绍
================================================================================
编辑:
Ctrl+Shift+L 显示所有快捷键
Ctrl+K 参照选中的词(Word)快速定位到下一个
Ctrl+Shift+K 参照选中的词(Word)快速定位到上一个
Ctrl+O 快速显示OutLine
Ctrl+T 快速显示当前类的继承结构
Ctrl+Shift+X 把选中文本全部改为大写
Ctrl+Shift+Y 把选中文本全部改为小写
Ctrl+Shift+F 按照当前的配置文件格式化源代码
Ctrl+L 弹出行定位框以便定位到某一行
Ctrl+Numpad_Divide
Ctrl+/(小键盘) 使代码折叠可用
Ctrl+Numpad_Multify
Ctrl+*(小键盘) 展开当前类中的所有代码
Ctrl+Shift+Numpad_Divide
Ctrl+Shift+/(小键盘) 折叠所有,如果不能全部成功折叠,
将光标移到文档最后试着或多按几次
折叠当前类中的所有代码
Ctrl+1 快速修正,需要导包的时候出现导包提示界面,
Ctrl+Q 定位到最后编辑的地方
Ctrl+Shift+m 导入当前行上需要的包(add import)
Ctrl+Shift+o 导入所有需要的包(organize imports)
Shift+Enter 在当前行的下一行插入行
Shift+Ctrl+Enter 在当前行的上一行插入行
Alt+/ 语法补充快捷
Ctrl+MouseLeft 当按住Ctrl时,将Mouse移动到一个类或类的方法或属性时,
左键点击会进入到源文件内进行查看
如果没找到源文件,而需要指定Sourece,
比如说JDK自身的src.zip文件或源文件所在的文件夹
Ctrl+/ == Ctrl+Shift+C 注释选定行或取消注释
Ctrl+Shift+/ 用*...... */注释选定行
Ctrl+Shift+ 取消/*...... */注释
Ctrl+D 删除当前行
Shift+< 在当前位置插入成对的尖括号:<>
Ctrl+Alt+down 复制当前行到下一行
Ctrl+Alt+up 复制当前行到上一行
Ctrl+Alt+J Join Lines连接行
Alt+down 当前行和下面一行交换位值
Alt+up 当前行和上面一行交换位值
选定光标所在的行通过用这两个快捷各执行一次来完成
Alt+left 前一个编辑的代码页面或在当前页面中上一个光标的位置
Alt+right 下一个编辑的代码页面或在当前页面中下一个光标位置
(当使用了Alt+←后)
Alt+Shift+O (或点击工具栏中的Toggle Mark Occurrences按钮)
当点击某个标记时可使本页面中其他地方的此标记黄色凸显,
并且窗口的右边框会出现白色的方块,点击此方块会跳到此标记处
Shift+Home 选定光标处到行首的内容
Shift+End 选定光标处到行尾的内容
Ctrl+Shift+Home 选定光标处到首行行首的内容
Ctrl+Shift+End 选定光标处到尾行行尾的内容
Ctrl+Shift+P 定位到与之成对匹配的括号{或)
(从前面定位后面时,光标要在匹配符之后,从后往前定位,反之)
Tab与Shift+Tab 选中要移动的代码后,按Tab键右移,按Shift+Tab键左移
Ctrl+up
Ctrl+down 上下滚动编辑页面
查找:
Ctrl+Shift+R 相当于Navigate->Open Resource...
输入Java源文件名或类名,会按通配的方式列出符合条件的.java源文件
Ctrl+J 正向增量查找(按下Ctrl+J文件你所输入的每个字母,
编辑器都提供快速匹配定位到某个单词,如果没有,
则在stutes line中显示没有找到了,查一个单词时,特别实用,
这个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相文件只不过是从后往前查)
窗口:
Ctrl+M 窗口最大化与恢复大小转换
最大化当前的Edit或View(再按则恢复)
Ctrl+W 关闭当前Editor
Ctrl+Shift+F4 关闭所有打开的Editor
Ctrl+E 快速显示当前Editor的下拉文档列表
Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
F2 当鼠标放在一个标记处出现Tooltip时候,
按下F2会铆钉显示的 Tooltip 框
F3 跳到声明或定义(源文件)处
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Ctrl+PgUp
Ctrl+PgDown 切换代码窗口的各个文档,
如果切换到头就会打开"Show List"下拉框
在此下拉框里显示有最近曾打开的文件,
连续按可移动选中项
对于XML文件是切换代码和图示窗口
Alt+Shit+w 在光标处弹出选择view的菜单
在Package窗口下,弹出Navigator与Properties的选择菜单
Alt+Shift+Q,Q 弹出"Show View"选择界面
Alt+Shift+Q,T Show View(View: Hierarch)
Alt+Shift+Q,B Show View(View: Breakpoints)
Alt+Shift+Q,H Show View(View: Cheat Sheets)
Alt+Shift+Q,C Show View(View: Console)
Alt+Shift+Q,L Show View(View: Error Log)
Alt+Shift+Q,Z Show View(View: History)
Alt+Shift+Q,J Show View(View: Javadoc)
Alt+Shift+Q,O Show View(View: Outline)
Alt+Shift+Q,P Show View(View: Package Explorer)
Alt+Shift+Q,X Show View(View: Problems)
Alt+Shift+Q,S Show View(View: Search)
Alt+Shift+Q,Y Show View(View: Synchronize)
Alt+Shift+Q,V Show View(View: Variables)
Debug:
F5 单步调试进入函数内部
F6 单步调试不进入函数内部
F7 由函数内部返回到调用处
F8 一直执行到下一个断点
Refactor 重构(一般以Alt+Shift开头):
Alt+Shift+R 重命名被选中的变量
Alt+Shift+M 抽取方法
Alt+Shift+C 修改函数结构
Alt+Shift+L 抽取本地变量
Alt+Shift+F 把Class中的local变量变为field变量(MyEclipse中需要自定义)
Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动方法和变量不怎么常用
Alt+Shift+Z 重构的后悔药(Undo)
================================================================================
Ctrl+I格式化激活的元素Format Active Elements?
Ctrl+Shift+Space提示信息即Context Information?
================================================================================
1. 更改快捷键设置(自定义快捷键)
================================================================================
代码的自动完成:
(1) Windows->Preference->General->Keys
是管理快捷键的地方
在这里的type filter text处输入Content Assist,
找到要修改的"Content Assist"
在下面会出现"Content Assist",用鼠标选中"Content Assist",
在下面的"Binding"处按自己需要的快捷键组合,比如Alt+/
在"When"中选择"Editing Text"
(2) Windows->Preference->Java->Editor->Templates
这里是管理Java编辑器模板的地方
比如找到"Name"为sysout的,可以看到其"Preview:"处有:
System.out.println(${word_selection}${});${cursor}
其表示在输入sysout后,按Alt+/就可以自动完成System.out.println();的输入
再比如找到"Name"为main的,可以看到其"Preview:"处有:
public static void main(String[] args) {
${cursor}
}
表示在输入main后,按Alt+/就可以在弹出的选项中选择main方法,
自动完成main方法的格式化输入
自定义抽取局部变量为成员变量:
Windows->Preference->General->Keys
在这里的type filter text处输入Convert a local variable to a field,
如果看到Binding一栏处还没有绑定快捷键,
就将光标移到下面的Binding文本框内,然后按Alt+Shift+F,
然后OK即可.
================================================================================
2. 整合Javadoc文档到MyEclipse
================================================================================
在MyEclipse中左边的"Package Explorer"窗口中选中一个JAR包
右键->属性>Javadoc Location可以指定其JAR包所对应的Java文档的位置,
其中上面的"Javadoc URL"可以点击Browse..."选择文档所在的目录,如:
javaee.jar在我电脑中的路径是这样的:file:/D:/Program/Sun/SDK/docs/api/
选择完后,可以点击Browse..."下的"Validate..."进行有效性验证
一般所选择的目录下面应该有index.html或相应的package-list文件.
其中下面的"Javadoc in archive"是用来选择一个打包文档jar或zip的"
选中"External file"表示我们需要从外部而不是MyEclipse工作空间中选择这个文档,
然后点击Archive path后的"Browse...",选择一个有Javadoc打包的文件
比如我电脑中的路径是这样的"D:ProgramSunSDKdocsapi_doc.zip
注意从sun公司网站下载的java_ee_sdk-5_03-javadocs.zip其结构是这样的"
java_ee_sdk-5_03-javadocs.zip |
|docs|
|api|
| |index.html
| |package-list
|
|legal
不能直接选中所下载的java_ee_sdk-5_03-javadocs.zip,而要重新打包,
将其中的index.html那一级目录置为重新打包后的顶层目录
或者不用重新打包,在Archive path:中找到下载的java_ee_sdk-5_03-javadocs.zip文件
再在其下面的Path within archive:中选择相应的路径即可
Archive path:D:ProgramSunSDKjava_ee_sdk-5_03-javadocs.zip
Path within archive:docs/api
这样,当在编写一个源Java源文件的时便将光标定位到一个类或接口上的时候,
如:
选中HttpServlet,然后按F1,在窗口右边就会出现Help窗口,
点击窗口中的Javadoc for 'javax.servlet.http.HttpServlet',
就可以在窗口中出现相应的API帮助文档了.
以上的对相应的JAR包或相关框架的DOC的设置,
那么对于JDK的DOC的设置,可以使用下面的方式:
Windows->Preferences
输入JRE,然后选中Java->Installed JREs
在右边选中需要进行DOC文档位置设置的JRE,然后选择"Edit",
在出现的界面中选中相应的jar包,然后点击右边的"Javadoc Location..."进行设置.
================================================================================
3. 无法正常启动
================================================================================
MyEclipse启动遇到内部错误总启动不了的时便
将Workspace下的.metadata目录删除重启即可
================================================================================
4. 标记断点:
================================================================================
在java视图中,直接在你要设置断点的那行的最左边,双击即可,右键的弹出菜单中也有这个选项
Debug:
选择debug(F11,Run菜单中的debug)即可,自动进入debug视图,
用Step into(F5)能进入到被调用方法的跟踪
用Step over(F6)进行单步调试
================================================================================
5. 更改 Web Project 的 Web Context-root:
================================================================================
右键点击Web项目->Properties->MyEclipse->Web
在右边的界面的Context Root中可进行更改设置.
如果在Tomcat没运行的时便修改一个以前已部署的Web应用的Web Context-root,
此时MyEclipse会将以前此Web应用的部署删除
如果在Tomcat运行着的时候,修改一个已部署后正在使用(存在正在访问的客户端)的Web应用
的Web Context-root,MyEclipse不会将此Web应用的部署删除,而是出现一个黄色的感叹号图标.
由于Web Context-root被更改此部署其实已失效,
需要删除原来的部署,重新在Tomcat中"Add Deployment..."
================================================================================
6. 文件上传相关
================================================================================
文件上传路径,如果不写相对路径或绝对路径
那么会存入D:ProgramApacheapache-tomcat-6.0.18in目录
================================================================================
7. MyEclipse各种相关的文件格式的编辑器字体显示设置
================================================================================
window->preference->General->Appearence->Colors and Fonts
在其右边有这么几项
Basic:
Basic colors and fonts used throughout workbench dialogs and editors.
基本上指所有对话框和编辑器中的字体,包括jsp,ant的xml等文件的字体显示.
如果需要对XML等编辑器的字体进行设置,先设置这里,
对于控制台的字体如果这里设置大了看着不舒服,可专门到Debug下设置控制台的字体.
CVS:
版本库相关的显示字体
Debug:
控制台的输出字体
Java:
Java源文件编辑器字体
JavaScript:
JavaScript字体
Structured Text Editors:
结构化文本的字体,如xml,xml schemal等
Text Compare:
文本比较器的字体
View and Editor Folders:
Colors and fonts used by the default Eclipse presentation.
->Java Editor Text Font然后点Change
================================================================================
7-1. MyEclipse中UML图中的字体的设置
================================================================================
window->preference->MyEclipse->UML1
在右边的Nodes中,有Header font与Body font的设置.
================================================================================
8. 某一文件的存储字符编码设置
================================================================================
在Eclipse中不能保存中文时,可以设置一下Eclipse的编码方式为gbk等支持中文的字符编码方式。
可通过以下方式进行修改:
(1) Window->General->workspace
->在右边的界面中的"Text file encoding"下设置;
(2) 鼠标右键点击所需要修改的文件,或File->Properties
->在右边的界面中的"Text file encoding"下设置;
(3) 鼠标右键点击需要修改字符集编码的文件-->proterties(Alt+Enter)-->"Resource",
在右边窗口中的下面有"Text file encoding",
在Other处填入需要的字符集编码,如GBK或GB18030或UTF-8等;
================================================================================
8-1. 某种格式的文件的存储字符编码设置
================================================================================
Window-->Preferences-->MyEclipse-->Files and Editors,
在这里,可以设置多种文件格式的Encoding,比如说JSP的,
找到JSP,在右边就会出现一个界面,找到"The following encoding will apply:",
将Encoding:设置为自己所需要的字符编码,比如说ISO 10646/Unicode(UTF-8)
================================================================================
9. 自定义代码格式
================================================================================
"Windows"-->"Preferences"-->"Java"-->"Code Style"-->"Formatter"
================================================================================
10. 编辑JSP文档,XML等文档反应慢的问题
================================================================================
原因:
(1) 新建的工程中加入了JAVA EE的lib库
库中的所使用的javax.servelet.jar等这些个包中的javadoc location位置,
被设置成了官方网站的网址,
这样每次提示的时候都要去官方网站去找doc,所以导致myeclipse会很忙
当禁用网卡或者拔掉网线的时便就不会在卡了
(2) JSP编辑器使用了MyEclipse Visual JSP Designer
最终解决方法
(1) [Window]->[Preferences]->[MyEclipse]->[JavaEnterprise Project]->[Library Sets]
[JAVA EE 5.0][J2EE 1.4]和[J2EE 1.3]下的javax.servelet.jar等包,
点开选择[javadoc location]这个节点,双击后在对话框中,
把地址去掉为空或者选择你本地javadoc地址,即可解决jsp自动提示卡和慢的问题
(2) [Window]->[Preferences]->[General]->[Editors]->[File Associations]
在右边的上半部分列出的文件扩展名中选中*.jsp,
在右边的下半部分列出的编辑器中选中MyEclipse JSP Editor,
点击右边的"Default",将这个编辑器设置为默认的编辑器,
这样当你双击一个jsp文档的时候,就会默认使用这个编辑器打开JSP文档了.
================================================================================
11. MyEclipse版本的区别
================================================================================
blue
专为IBM开发的,功能最全的版本
M(Milestone)
Milestone版本,是比beta版还要早的版本
可以看作是下一代正式版本的一个试探性改进测试
GA(Generally Available)
正式版MyEclipse
目前(2009-12-23)8.0GA是最新的
================================================================================
12. 关闭myeclipse的Quick Update自动更新功能
================================================================================
Windows > Preferences > MyEclipse > Community Essentials,
把选项 "Search for new features on startup"的前勾去掉即可
================================================================================
13. MyEclipse内存使用相关以及JVM内存分配
================================================================================
1) PermGen space简介
PermGen space的全称是Permanent Generation space,
是指内存的永久保存区域。
OutOfMemoryError: PermGen space从表面上看就是内存益出,
解决方法也一定是加大内存。
说说为什么会内存益出:
* 这一部分用于存放Class和Meta的信息,Class在被Load的时候被放入PermGen space区域,
它和和存放Instance的Heap区域不同。
* GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,
所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。
这种错误常见在web服务器对JSP进行pre compile的时候。
如果你的WEB APP下都用了大量的第三方jar,
其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
13_1.Tomcat内存溢出的解决方法:
手动设置MaxPermSize大小, 修改TOMCAT_HOME/bin/catalina.sh,
在echo "Using CATALINA_BASE: $CATALINA_BASE"上面加入以下行
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:
将相同的第三方jar文件移置到tomcat/shared/lib目录,这样可以减少jar文档重复占用内存
================================================================================
14. Eclipse 内存溢出或不能启动或死掉的解决
================================================================================
这一段时间,Eclipse总是死掉,几乎是稍微操作快一点就会死掉,几分钟一次,
搞得人郁闷至极。浪费了不少时间,在网上搜了下,看到很多朋友也出现类似的情况,
在网上求救,但是网上的办法都只是说通过修改eclipse.ini文件来加大Eclipse的内存。
自己试了下,发现不管用。今天,又死掉了,不过爆出一个经常出现的错误,
大意是:permgen space导致内存溢出。
解决办法如下:
在eclipse.ini配置文件中加上以下两行
-XX:PermSize=128M
-XX:MaxPermSize=128M
加上上2行后,我的eclipse.ini文件如下所示:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
-vmargs
-Xms256m
-Xmx512m
-XX:PermSize=128M
-XX:MaxPermSize=128M
这里的内存大小根据自己的物理内存情况来决定吧。
从网上的资料看PermSize大一点肯定更好,而且最好是设置PermSize和MaxPermSize一样大。
理由如下: PermSize 和 MaxPermSize如果设置为相同还可以在一定程度上提高性能,
因为PermSize在不断的变化中会需要转移其中的数据。
如果固定了以后,则可以减少每次扩大PermSize带来的性能损失。
15. 让你的eclipse也能显示JVM当前内存使用量
================================================================================
1) 在eclipse或MyEclipse目录下建立一个文件文件名options,
文件内容:
org.eclipse.ui/perf/showHeapStatus=true
2) 有两种方式来启用这个配置文件:
(1) 用命令方式启动:
D:MyEclipseeclipse.exe -debug options -vm javaw.exe
或者直接右键eclipse的快捷方式的"目标"中填入这行
(2) MyEclipse.ini中前两行加入下面两行:
-debug
options
修改ini文件是要注意备份。
3) 启动eclipse,就可以看到下面的状态栏会显示当前JVM内存使用量
另外还可以强制进行垃圾收集。
加启动参数和在ini中写是一样的,都是启动的配置
4) eclipse对于JRE的加载顺序:
首先执行 -vm 参数;如果没有-vm参数,
则查找eclipsejre子目录,如果没有找到,
eclipse最后才查找在系统中注册的jre
-------------------------------------------------------------------------------
以下是写在MyEclipse目录下的Myeclipse.ini中内容的例子:
-debug
options
-vm
javaw.exe
-vmargs
-Xms256m
-Xmx512m
-XX:PermSize=128M
-XX:MaxPermSize=256M
在Eclipse目录下建一文件options(无任何扩展名),其内容为:
org.eclipse.ui/perf/showHeapStatus=true
加了这个后Eclipse会在下面状态栏显示垃圾回收的东东.
================================================================================
15.1 Eclipse状态栏显示JVM内存使用情况的改进
================================================================================
1. 打开记事本,输入以下内容org.eclipse.ui/perf/showHeapStatus=true
然后保存于eclipse根目录下,文件名为options,没有文件扩展名。
2. 用-debug options -vm javaw.exe这条命令启动eclipse:
在快捷方式的目标中写入如下"C:eclipseeclipse.exe -debug options -vm javaw.exe"
3. 重启就可以啦
================================================================================
15.2 MyEclipse8.0中状态栏显示JVM内存(Show heap status)使用情况
================================================================================
在MyEclpise8.0中简单了,windows->Preferences->General
在其右边的界面中,找到"Show heap status",并勾选上,然后确定即可;
================================================================================
16. MyEclipse7.5的Content Assist不起作用了
================================================================================
(1) 在window->Preferences->Java->Editor->Content Assist
中找到Enable auto activation,将其选项勾上;
(2) window->Preferences->Java->Editor->Content Assist->Advanced
上面的选项卡Select the proposal kinds contained in the 'default' content assist list:中,
把 Other Java Proposals 选项打上勾就可以了。
================================================================================
17. MyEclipse中启动Tomcat,JBoss等服务器里,控制台不显示启动信息
================================================================================
现象:
在控制台为:
no consoles display at this time
但服务器已经启动,可正常使用.
MyEclipse7.5 Tomcat6.0.18 JBoss4.2.3.GA
之前正常,今天突然就这样了.
解决方法:
在MyEclipse菜单中window-->preferences-->Java-->Installed JREs
中,Add自己安装的JDK,
而不要使用MyEclipse自带的JDK"com.sun.java.jdk.win32.x86_1.6.0.013"
或者:
选择Tomcat6.x-->JDK-->Add,点Browse找到自己的JDK的安装路径.
如果JDK已配置为自己安装的了,就定位到
window-->preferences-->MyEclipse Enterprise Workbench-->Servers
随便选择一个服务器,比如Tomcat6.x-->JDK,
只要定位到JDK,就OK了,
或者定位到window-->preferences-->Java-->Installed JREs,
只要一点Installed JREs,就OK了.
这个是myeclipse7.5本身的问题,莫名其妙.
================================================================================
18. 去掉Show In Breadcrumb显示出来的导航条
================================================================================
按下快捷键Alt+Shift+B或者右键单击后选中了Show in Breadcrumb时,
就会在编辑器Editor上方出现一个快速导航条,如果想去掉它可以这样来解决:
定位到Window -> Customize Perspective -> Commands
在"Available command groups"下面找到"Java Editor Persentation",
确定其是被勾选的.然后OK退出设置界面.
在菜单上会有一个Toggle Breadcrumb的快捷按钮
(一般在那一长行快捷按钮的右边,也就是切换Java,MyEclipse等视图按钮的左边),
可看见其状态是被选中的,点击这个按钮图标,即可取消(再次点击这个按钮图标又出现Breadcrumb)。
================================================================================
19. 显示被@Deprecated标注过和方法为一条横线穿过:
================================================================================
定位到Window->Preferences->Java->Compiler->Errors/Warnings;
将其右边的"Deprecated and restricted API"下的选项勾选上,然后OK.
================================================================================
20. 恢复不小心被删除的文件
================================================================================
恢复文件:
选中你需要恢复文件的Project或package,鼠标右击"Restore from Local History..."
然后直接选中你需要恢复的文件,点击"Restore"就OK了。
恢复类语句块:
选中你需要恢复的块,鼠标右击"Local History..."-->"Replace with..."
或"Restore From..."然后看清你要恢复的块。OK就行了。
当然上面只是针对Java源文件来说的,对于WebRoot下的JSP等文件的恢复,
需要选中其文件,鼠标右击"Replace with"->"Local History"->
================================================================================
21. 增强Content Assist的提示功能
================================================================================
(1) windows->preferences->Java->Editor->Content Assist
找到右下方的Auto-Activation(自动激活),
在Auto activation triggers for Java:的右边框中的.后加入abc,
(加这个的目的是为了好在后面查找定位),点击"OK",回到主界面,
(2) "File"菜单中选择"Export...",
在弹出的界面中选择"General->Preferences"->"Next",
在这个界面中,先勾选上"Keys Preferences"(注意先勾选),
再注意选中上方的"Export all", 在"To preference file:"框的右边点击"Browse...",
选择导出路径以及为导出文件取一个文件名(默认扩展名为.epf);
(3) 用文本编辑器打开导出的文件(*.epf),查找".abc"(前面在.后添加的abc就这作用),
定位到/instance/org.eclipse.jdt.ui/content_assist_autoactivation_triggers_java=.abc
处,在abc后面添加你想要的触发键,如:
...content_assist_autoactivation_triggers_java=.abcdefghijklmnopqrstuvwxyz
保存.
(4) 再使用"File"菜单中的"Import..."导入即可使用增强的Content Assist.
================================================================================
22. 为MyEclipse添加XML文档所使用的DTD或XML Schema,
从而使用Content Assistant可进行代码提示:
================================================================================
(1) DTD
1) 定位到:
WIndow->Preferences->MyEclipse->XML->XML Catalog
2) 在右边的界面中,选择"User Specified Entries",点击右边的"Add...";
3) 在弹出的对话框中点击"File System...",为Location输入框添加DTD文件所在路径;
4) 使用别的文本编辑器打开此DTD文件,找到相应的<!DOCTYPE ...>文档类型声明,
比如说Hibernate的配置文件:hibernate.cfg.xml所需要的DTD文件为:
hibernate-configuration-3.0.dtd
打开hibernate-configuration-3.0.dtd后,找到如下内容:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
4) "Key Type:"右边的下拉框中(有三个类型:Public ID,System ID,URI),
根据hibernate-configuration-3.0.dtd中的<!DOCTYPE...>中的PUBLIC,
选择Public ID(或者直接选择"URI"也可);
5) "Key:"右边的文本框中,将hibernate-configuration-3.0.dtd中的<!DOCTYPE...>
中的PUBLIC后的双引号内的内容COPY,然后粘贴到"Key:"右边的文本框中,
注意,COPY的内容不带双引号"";
(如果上面第(4)步中选择的是URI,则需要填入的是dtd文件中的http://...部分)
6) 点击"OK",即可看到"User Specified Entries"已有了所增加的DTD(的KEY);
同样,hibernate-mapping-3.0.dtd这个DTD的加入,也可以如法炮制;
7) 重启MyEclipse即可,注意如果提示不出来,
并在状态栏的左下出现"Content Assist not available at the current location",
请在光标位置键入一个空格再使用Alt+/试试;
(2) XSD(XML Schema)
1) 定位到:
WIndow->Preferences->MyEclipse->XML->XML Catalog
2) 在右边的界面中,选择"User Specified Entries",点击右边的"Add...";
3) 在弹出的对话框中点击"File System...",为Location输入框添加XSD文件所在路径;
4) .xsd文件添加后,在下面的Key:右边的文本框会自动添加一个URI,如Spring的:
http://www.springframework.org/schema/beans
如果没有自动添加,使用别的文本编辑器打开此.xsd文件,
找到相应的<xsd:schema xmlns...>名称空间声明,比如说spring-beans-2.5.xsd
<xsd:schema xmlns="http://www.springframework.org/schema/beans"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.springframework.org/schema/beans">
4) "Key Type:"右边的下拉框中有Namespace Name与Schema Location两个选项,
如果是DTD,这里有有三个类型:Public ID,System ID,URI;
将Key Type置为Schema Location
5) 在Key:右边的文本框中的URI后面加上/,再加上此xsd的名字,
如spring-beans-2.5.xsd的key为:
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
6) 点击"OK",即可看到"User Specified Entries"已有了所增加的xsd(的KEY);
选中此xsd条目,下面的Details为:
Location: D:ProgramsJavaspring-framework-2.5.6.SEC01dist esourcesspring-beans-2.5.xsd
URI: file:///D:/Programs/Java/spring-framework-2.5.6.SEC01/dist/resources/spring-beans-2.5.xsd
Key Type: Schema Location
Key: http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
7) 重启MyEclipse即可,注意如果提示不出来,
并在状态栏的左下出现"Content Assist not available at the current location",
请在光标位置键入一个空格再使用Alt+/试试;
================================================================================
23. 在Eclipse中可以通过window->Reset Perspective恢复透视图默认设置。
================================================================================
24. @Override报错的原因:
================================================================================
在项目的Properties-->Java Compiler的右边视图中,
选中"Enable project specific settings",
"Compiler compliance level:"选择为1.6,
因为1.5中,实现某一接口的时候,方法的实现不能使用@Override标记;
1.6后无论是方法的覆写还是方法的实现,均可使用@Override标记.
================================================================================
25. MyEclipse8.0GA中安装插件:
================================================================================
(1) 解压插件,一般会有下面的目录结构:
eclipse |
|features
|plugins
早期的MyEclipse版本中,只需要将插件解压后的eclipse文件夹COPY到
MyEclipse目录下覆盖(补充)到eclipse文件夹中即可,
但8.0GA中不一样了,需要将插件解压后的eclipse目录中的两个文件夹,
COPY到MyEclipse安装路径下的D:ProgramsGenuitecCommon目录下,
(2) 修改bundles.info,此文件位于MyEclipse的安装目录下的:
D:ProgramsGenuitecMyEclipse8.0GAconfiguration
org.eclipse.equinox.simpleconfigurator
目录下;
在bundles.info文件的最后,增加如下格式的信息:
包名,版本号,file:/文件绝对路经,4,false
如(一个国际化资源文件编辑器插件):
jp.gr.java_conf.ussiy.app.propedit,5.3.3,file:/D:/Programs/Genuitec/Common/plugins/jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar,4,false
(3) 重新启动MyEclipse,OK;
================================================================================
26. 防止代码格式化时出现换行
================================================================================
辛苦写完的代码,被MyEclipse格式化后,
想放在一行上的东西被自动转成了多行,
如果想避免这个情况,可:
1. Java代码
Window->Preferences->Java->Code Style->Formatter->Edit
在弹出的界面中:
Line Wrapping->Maximum line width
这个值是设置一行的宽度,默认值为80,可以在这里把这个值根据自己需要改大;
2. HTML/JSP代码
Window->Preferences->MyEclipse->Files and Editors->Html->Html Source->Line width
默认值为72,把这个值根据自己需要改大;
3. XML代码
Window->Preferences->MyEclipse->Files and Editors->xml->xml Source->->Line width
默认值为72,把这个值根据自己需要改大;
================================================================================
27. MyEclipse8.0启动时显示启动界面(splash.bmp)
================================================================================
在myeclipse.ini的最后一行加上:
-showsplash
-Dosgi.splashLocation=D:/Programs/Genuitec/Common/plugins/com.genuitec.myeclipse.product8_8.0.0.me200911192201/splash.bmp
其中-Dosgi.splashLocation=后面的是界面图片的路径;
================================================================================
28. 加入自己的环境变量:
================================================================================
如在myeclipse.ini的最后一行加上:
-DNLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
-Duser.language=zh
================================================================================
29. Tomcat内存设置方法
================================================================================
在windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。
这个初始内存和最大内存在一定程度都会影响程序的性能。
比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,
一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序(Heap堆)的初始内存和最大内存:
如:
java -Xms64m -Xmx128m a.jar
Tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。
在Tomcat在改变这个设置有两种方法:
1. 适合用%tomcat_home%in中的startup.bat脚本启动,
需要在环境变量中加上CATALINA_OPTS这个属性,如:
SET CATALINA_OPTS=-Xms64m -Xmx512m;
ms是最小的,mx是最大,64m,512m分别是指内存的初始和最大容量.
因为用startup.bat启动tomcat服务器,会调用catalina.bat文件,
在Catalian.bat文件的166行"rem Execute Java with the applicable properties"
下面有加载系统设置的相关属性。
其中就有%CATALINA_OPTS%这一项。这样tomcat在启动时就会将内存设置为指定的值。
2. 适合将tomcat作为系统服务启动,这时候上面设置CATALINA_OPTS属性的方法就不适用了,
因为作为系统服务的话,系统启动时调用的是 %tomcat_home%in omcat5w.exe,
他读取注册表中的值,而不是catalina.bat的设置,因此需要修改注册表:
解决办法,修改注册表:
HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationTomcat Service ManagerTomcat5ParametersJavaOptions
原值为
-Dcatalina.home="C:ApacheGroupTomcat 5.0"
-Djava.endorsed.dirs="C:ApacheGroupTomcat 5.0commonendorsed"
-Xrs
加入
-Xms300m -Xmx350m
重起tomcat服务,设置生效
最后,测试tomcat使用内存的大小,在jsp页面:
<%
Runtime lRuntime = Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS ***<br/>");
out.println("Free Memory: "+lRuntime.freeMemory()+"<br/>");
out.println("Max Memory: "+lRuntime.maxMemory()+"<br/>");
out.println("Total Memory: "+lRuntime.totalMemory()+"<br/>");
out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
out.println("*** END MEMORY STATISTICS ***");
%>
================================================================================
30. MyEclipse中启动Oracle连接的时候报Error:
Error while performing database login with the Oracle0.2.0.1.0 driver:
ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified
大致意思是MyEclipse的环境变量或NLS配置文件与服务器端的有出入或不匹配;
查看Oracle数据库的相关信息为:
================================================================================
解决:
Help->Aboub MyEclipse Enterprise Workbench->Installation Details->
->Configuration
找找以下相关参数(下面的参数就是启动Oracle连接报错的原因):
-Duser.language=en
osgi.nl=en_CN
user.country=CN
user.language=en
打开myeclipse.ini查看,看到多了一项参数:
-Duser.language=en
MyEclipse在启动时候,语言编码是在[MyEclipse路径]eclipseeclipse.ini文件中加载的。
而国家地区编码是从系统的区域设置中得到的。
如果MyEclipse默认启动参数为"-Duser.language=en",
而操作系统设为"中文(中国)"也就是CN,那么MyEclipse加载后的信息就是"en_CN",
这样就会看到osgi.nl=en_CN,这就会出现上述问题,
所以只要将语言与区域设置一致,就可以解决上述问题,
可以就系统的区域设置定为"中文(中国)"CN,修改eclipse.ini文件,
将"-Duser.language=en"修改为"-Duser.language=zh",
这样在MyEclipse加载后的Configuration Details信息就统一为zh_CN,即"osgi.nl=zh_CN".
也可以直接在myeclipse.ini中设置:
-Duser.language=en
-Dosgi.nl=en_US
这样在MyEclipse加载后的Configuration Details信息就统一为en_US,即"osgi.nl=en_US".
================================================================================
31. 改变MyEclipse中错误提示的波浪线为其他样式:
================================================================================
window->Preferences->Ceneral->Editors->Text Editors->Annotations:
在右边的"Annotation Types"下找到红叉图标的"Errors",选中,
在界面上的右边,可以看到以下几个Show in的复选项:
Vertical ruler 左边框坚状条
Overview ruler 右边框坚状条
Text as 文本的显示方式
勾选上"Text as",在其右边的下拉框中有以下几种选项:
Text as :
Box 实线框
Dashed Box 虚线框
Highlighted 高亮
Native Problem Underline ??
Squiggles Line 波浪线
Underlined 下划线
Vertical Bar 竖线
================================================================================
32. 改变默认的创建JSP时的pageEncoding编码:
================================================================================
定位到:
Window->Preferences->MyEclipse->Files and Editors->JSP
在其右边的界面中,Encoding右边的下拉组合框中选择需要的字符集,如:
"ISO 10646/Unicode(UTF-8)"
在其下会显示:
IANA: UTF-8
如果选择Chinese, National Standard
则其下会显示:
IANA: GB18030
================================================================================
33. MyEclipse中使用正则替换批量生成删表SQL:
================================================================================
方式一:
应用于删除数据库中的垃圾表:
(1) 先在sqlplus下使用如下命令查找到表名,如:
SELECT table_name from user_tables;
把表名复制到一个.sql文件中,
(2) MyEclipse打开此.sql文件,按CTRL+F调出查找替换界面,
勾选上Options中的Regular expressions,
在Find右边的文本框填写上: (^W)
这表示查找每行的第一个字母,并将其缓存于GROUP1中,
在Replace With右边的文本框中填写上: DROP TABLE $1
表示将匹配上的字符替换为DROP TABLE 加上它本身,
其中$1表示从缓存的GROUP1中取内容;
(3) 同理在语句最后加上:
在Find右边的文本框填写上: (W$)
这表示查找每行的最后一个字母,并将其缓存于GROUP1中,
在Replace With右边的文本框中填写上: $1 CASCADE CONSTRAINTS;
表示将匹配上的字符替换为它本身加上 CASCADE CONSTRAINTS;,
其中$1表示从缓存的GROUP1中取内容;
(4) 所有的DROP TABLE XXxxx CASCADE CONSTRAINTS;语句生成;
方式二:
(1) 先动态生成sql脚本(vi gen.sql,然后内容如下):
set head off
set feed off
set echo off
spool deltab.sql
SELECT 'DROP TABLE '||table_name||' CASCADE CONSTRAINTS;' FROM user_tables;
spool off
set head on
set feed on
(2) 执行gen.sql生成deltab.sql;
(3) 执行deltab.sql脚本;
================================================================================
34. 新建工作空间WorkSpace后,如何使用以前的工作空间设置?
================================================================================
原工作空间目录下有相关的配置信息:
.metadata.pluginsorg.eclipse.ui.workbench
.metadata.pluginsorg.eclipse.ui.workbench.texteditor
将上面两个文件夹COPY到新的工作空间覆盖,然后再启动MyEclispe.
如果打开新的工作空间后,项目处还有旧工作空间的项目列表,
则删除即可,但注意不要将其从磁盘上彻底删除,也就是只从工作空间删除.
================================================================================
35. MyEclipse中编写Java源文件时一个奇怪的问题[点Vertical Ruler上的红叉后,代码被隐藏]
================================================================================
现象描述:
如果源文件有错,这时在错误行的行首左边(行号)的左边的Vertical Ruler(标断点的那个隔条)上
会有一个红叉图标,点击这个红叉图标,一般会弹出一个提示你修正的提示框,
就跟在有错的地方使用快捷键CTRL+1调出Quick Fix框一样,
但现在用鼠标点这个红叉,快速修正框不弹出了,
替代的却是整个Editor界面中的代码从错误地方开始,被移动到Editor界面中的最顶,
在有错的代码的上边的其他代码都会看不到了(注意不是代码被折叠Folding了,而是看不见了,
但是行号的序号却是此行原来的样子,只不过现在这行是顶行),关掉这个源文件,重新打开,
所有代码又都显示了,
现在的问题是怎样让鼠标点红叉后出Quick Fix框,而不是将错误代码置顶并隐藏其之前的代码?
解决:
这是由于Eclipse中的"Show Source of Selected Element Only"功能引起的,
定位到:
Window->Customize Perspective->Tool Bar Visibility->Editor Presentation
展开Editor Presentation,找到Show Source of Selected Element Only,将其勾选,
这样在工具栏的快捷处就会出现这个功能的图标,如果这个图标是凹下去的,点击一下,
使其不被使用即可;
也可在工具栏快捷的空白处鼠标右键->Customize Perspective->Tool Bar Visibility...
这样找到Show Source of Selected Element Only选项;
================================================================================
36. 解决MyEclipse中连接数据库连接后,展开table或是view列表是不能显示的问题:
================================================================================
现象:
MyEclipse8.0GA中,DB Browers能与数据库建立连接,但是在试图展开table或是view列表时是空的,
看不到已经建立的表。而且,右键点击table的create table进行建表,
在提交时报错如下:
Table could not be created
Reason:ORA-06552:PL/SQL: Compilation unit alalysis terminated
ORA-06553: PLS-553: 无法识别字符集名称
ORA-06553: PLS-553: character set name is not recognized;
开始怀疑是MyEclipse的问题,后来想起来有对数据库做过字符集的修改,
手动的使用update props$,修改了字符集,其实这并不会真正彻底的改变数据库的所有字符集,
下面来确认字符集是不是真的被彻底修改:
SQL> select value$ from props$ where name='NLS_CHARACTERSET';
VALUE$
----------------------------
ZHS16GBK
SQL> SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET,
DECODE( TYPE#,
1, DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKOWN'),
9, DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING','UNKOWN'),
96, DECODE(CHARSETFORM 5 , 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
112, DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')
) TYPES_USED_IN
FROM SYS.COL$
WHERE CHARSETFORM IN (1, 2)
AND TYPE# IN (1, 9, 96, 112);
CHARACTERSET TYPES_USED_IN
---------------------------------------- -------------
WE8ISO8859P1 VARCHAR2
WE8ISO8859P1 CHAR
AL16UTF16 NCLOB
AL16UTF16 NVARCHAR2
ZHS16GBK VARCHAR2
WE8ISO8859P1 CLOB
AL16UTF16 NCHAR
已选择7行。
上面SELECT语句的意思是:
NLS_CHARSET_NAME(CHARSETID) --> 使用NLS_CHARSET_NAME()函数,取到其ID参数的字符集名称;
DECODE(....) TYPES_USED_IN --> 括号中的意思是:
如果TYPE#(TYPE#为第一个DECODE的第一个参数)的值是
第二个参数(1),则取其后的参数(1后面的)为函数的返回值,
否则继承判断TYPE#是否其与第四个参数相等,如果相等,
函数返回第五个参数的值.....,TYPE#如果均不等于
1,9,96,112,则最外的DECODE()函数返回NULL;
确实在数据库的列属性中仍然存在着多个字符集的设定,下面解决这个问题。
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> ALTER DATABASE OPEN;
Database altered.
SQL> COL VALUE NEW_VALUE CHARSET
SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
VALUE
-------------------------------------------
ZHS16GBK
SQL> COL VALUE NEW_VALUE NCHARSET
SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
VALUE
-------------------------------------------
ZHS16GBK
这里的国家语言字符集是有问题的,往下看操作就知道了:
-- INTERNAL_USE是没有写在文档中的参数,用以强制完成字符集一致化
ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
old 1: ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET
new 1: ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK
Database altered.
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
old 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET
new 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK
*
ERROR at line 1:
ORA-12714: invalid national character set specified
-- 运行到此处出问题了,看来国家字符集不能是ZHS16GBK的了,
-- 那为什么取的时候会取到呢?是因为早先的时候无知地使用了这个语句:
SQL> UPDATE props$ SET value$='ZHS16GBK'
WHERE name='NLS_CHARACTERSET' or name='NLS_NCHAR_CHARACTERSET';
-- 其值原来是 AL16UTF16,UPDATE后改成了ZHS16GBK,现在把其改回去先;
SQL> UPDATE props$ SET value$='AL16UTF16'
WHERE name='NLS_NCHAR_CHARACTERSET'; 2
1 row updated.
SQL> commit;
Commit complete.
-- 再次运行:
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
old 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET
new 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK
*
ERROR at line 1:
ORA-12714: invalid national character set specified
-- 还是不行,看看错误原因:
SQL> !oerr ORA 12714
12714, 00000, "invalid national character set specified"
// *Cause: Only UTF8 and AL16UTF16 are allowed to be used as the national
// character set
// *Action: Ensure that the specified national character set is valid
-- 由此可知,Oracle 10g的NATIONAL CHARACTER SET只有2个选择:AL16UTF16与UTF8
-- 下面直接用国家字符集名字,而不使用&NCHARSET来取:
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
Database altered.
-- 成功修改
-- 关闭数据库并重启:
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP
ORACLE instance started.
Total System Global Area 612368384 bytes
Fixed Size 2022696 bytes
Variable Size 251658968 bytes
Database Buffers 352321536 bytes
Redo Buffers 6365184 bytes
-- 按照上面的步骤,一步一步来,一步不要少,完成以后,重新检索col$表。