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:\Program\Sun\SDK\docs\api_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:\Program\Sun\SDK\java_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:\Program\Apache\apache-tomcat-6.0.18\bin 目录 ======================================================================== ======== 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:\MyEclipse\eclipse.exe -debug options -vm javaw.exe 或者直接右键 eclipse 的快捷方式的"目标"中填入这行 (2) MyEclipse.ini 中前两行加入下面两行: -debug options 修改 ini 文件是要注意备份。 3) 启动 eclipse,就可以看到下面的状态栏会显示当前 JVM 内存使用量 另外还可以强制进行垃圾收集。 加启动参数和在 ini 中写是一样的,都是启动的配置 4) eclipse 对于 JRE 的加载顺序: 首先执行 -vm 参数;如果没有-vm 参数, 则查找 eclipse\jre 子目录,如果没有找到, 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:\eclipse\eclipse.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=.abcdefghijklmnopqrstu vwxyz 保存. (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 文件,找到相应的文档类型声 明, 比如说 Hibernate 的配置文件:hibernate.cfg.xml 所需要的 DTD 文件为: hibernate-configuration-3.0.dtd 打开 hibernate-configuration-3.0.dtd 后,找到如下内容: 4) "Key Type:"右边的下拉框中(有三个类型:Public ID,System ID,URI), 根据 hibernate-configuration-3.0.dtd 中的中的 PUBLIC, 选择 Public ID(或者直接选择"URI"也可); 5) "Key:" 右 边 的 文 本 框 中 , 将 hibernate-configuration-3.0.dtd 中的 中的 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 文件, 找到相应的 名称空间声明, 比如说 spring-beans-2.5.xsd 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:\Programs\Java\spring-framework-2.5.6.SEC01\dist\resource s\spring-beans-2.5.xsd URI: file:///D:/Programs/Java/spring-framework-2.5.6.SEC01/dist/reso urces/spring-beans-2.5.xsd Key Type: Schema Location Key: http://www.springframework.org/schema/beans/spring-beans-2.5.xs d 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:\Programs\Genuitec\Common 目录下, (2) 修改 bundles.info,此文件位于 MyEclipse 的安装目录下的: D:\Programs\Genuitec\MyEclipse8.0GA\configuration \org.eclipse.equinox.simpleconfigurator 目录下; 在 bundles.info 文件的最后,增加如下格式的信息: 包名,版本号,file:/文件绝对路经,4,false 如(一个国际化资源文件编辑器插件): jp.gr.java_conf.ussiy.app.propedit,5.3.3,file:/D:/Programs/Genuitec/C ommon/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%\bin 中的 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%\bin\tomcat5w.exe, 他读取注册表中的值,而不是 catalina.bat 的设置,因此需要修改注册表: 解决办法,修改注册表: HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions 原值为 -Dcatalina.home="C:\ApacheGroup\Tomcat 5.0" -Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed" -Xrs 加入 -Xms300m -Xmx350m 重起 tomcat 服务,设置生效 最后,测试 tomcat 使用内存的大小,在 jsp 页面: <% Runtime lRuntime = Runtime.getRuntime(); out.println("*** BEGIN MEMORY STATISTICS ***
"); out.println("Free Memory: "+lRuntime.freeMemory()+"
"); out.println("Max Memory: "+lRuntime.maxMemory()+"
"); out.println("Total Memory: "+lRuntime.totalMemory()+"
"); out.println("Available Processors : "+lRuntime.availableProcessors()+"
"); 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 路径]\eclipse\eclipse.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\.plugins\org.eclipse.ui.workbench \.metadata\.plugins\org.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$表。 CHARACTERSET TYPES_USED_IN ---------------------------------------- ------------- ZHS16GBK CHAR AL16UTF16 NCLOB ZHS16GBK VARCHAR2 AL16UTF16 NVARCHAR2 ZHS16GBK CLOB AL16UTF16 NCHAR 已选择 6 行。 与之前的做一下对比: CHARACTERSET TYPES_USED_IN ---------------------------------------- ------------- WE8ISO8859P1 VARCHAR2 WE8ISO8859P1 CHAR AL16UTF16 NCLOB AL16UTF16 NVARCHAR2 ZHS16GBK VARCHAR2 WE8ISO8859P1 CLOB AL16UTF16 NCHAR 已选择 7 行。 可看出: 对于 CHAR,VARCHAR2,CLOB 使用了 ZHS16GBK; 对于 NCHAR,NVARCHAR2,NCLOB 使用了 AL16UTF16; 再次使用 MyEclipse 打开看看,一切 OK 了. 相关内容: ======================================================================= ========= 环境变量可设置为: NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK' NLS_LANG='AMERICAN_AMERICA.ZHS16GBK' NLS_LANG='AMERICAN_AMERICA.US7ASCII' 改变 SESSION 会话的(客户端界面显示)语言: 错误写法: ALTER SESSION SET NLS_LANGUAGE='AMERICAN_AMERICA.ZHS16GBK'; SET NLS_LANG='AMERICAN_AMERICA.ZHS16GBK' 正确写法: ALTER SESSION SET NLS_LANGUAGE=AMERICAN; ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE'; 有空格使用''括起来. 有关数据库字符集: 1. 查看数据库字符集 数据库服务器字符集: SELECT * FROM NLS_DATABASE_PARAMETERS; 其来源于 props$,是表示数据库的字符集; 客户端字符集环境: SELECT * FROM NLS_INSTANCE_PARAMETERS; 表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表,其来源于 v$parameter; 会话字符集环境: SELECT * FROM NLS_SESSION_PARAMETERS; 其来源于 v$nls_parameters,表示会话自己的设置, 可能是会话的环境变量或者是 alter session 完成, 如果会话没有特殊的设置,将与 nls_instance_parameters 一致。 客户端的字符集要求与服务器一致,才能正确显示数据库的非 Ascii 字符。 如果多个设置存在的时候,ALTER SESSION>环境变量>注册表>参数文件 字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。 如字符集是 ZHS16GBK,则 NLS_LANG 可以是 AMERICAN_AMERICA.ZHS16GBK。 2. 修改字符集 8i 以上版本可以通过 ALTER DATABASE 来修改字符集,但也只限于子集到超集, 不建议修改 props$表,将可能导致严重错误。 startup nomount; alter database mount exclusive; alter system enable restricted session; alter system set job_queue_process=0; alter database open; alter database character set zhs16gbk; 3. 怎么查看数据库版本 select * from v$version 包含版本信息,核心版本信息,位数信息(32 位或 64 位)等 至于位数信息,在 Linux/unix 平台上,可以通过 file 查看,如: file $ORACLE_HOME/bin/oracle ======================================================================== ======== 绝对不要用 update 系统表(props$)的方式来修改数据库字符集. 从 Oracle9i 开始,Oracle 在启动时跳过了这个检查,即使修改了错误的字符集, 也仍然可以启动,数据库启动时会将控制文件中的字符集更改为缺省的 US7ASCII. 具体可以看看以下的测试: SQL> select value$ from props$ where name='NLS_CHARACTERSET'; VALUE$ ---------------------------------------------------------- ZHS16GBK SQL> update props$ set value$='EYGLE' where name='NLS_CHARACTERSET'; 1 row updated. SQL> commit; Commit complete. SQL> select value$ from props$ where name='NLS_CHARACTERSET'; VALUE$ ----------------------------------------- EYGLE -- 注意,这个 EYGLE 是不存在的字符集; SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 126948772 bytes Fixed Size 452004 bytes Variable Size 92274688 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. Database opened. SQL> select value$ from props$ where name='NLS_CHARACTERSET'; VALUE$ ---------------------------------------------- EYGLE 此时警告日志中会记录如下信息: Thu Jun 8 16:28:05 2006 SMON: enabling cache recovery SMON: enabling tx recovery Thu Jun 8 16:28:05 2006 Updating character set in controlfile to US7ASCII replication_dependency_tracking turned off (no async multimaster replication found) Completed: ALTER DATABASE OPEN 虽然启动正常,不会报错,但在一起实际运用中是会有问题的,特别是在有中文使用 的情况下. 要彻底修改,参见上面. ======================================================================== ======== 37. 导入 Code Style 的 Formatter 配置与 Organize Imports 配置文件 ======================================================================== ======== (1) Formatter(代码风格格式): 定位到 Window->Preferences->Java->Code Style->Formatter 在右边, 点击"Import..."按钮,找到 fromatterName.xml 文件打开导入; (2) Organize Imports(包的导入排序): 定位到 Window->Preferences->Java->Code Style->Organize Imports 在右边, 点击"Import..."按钮,找到 xxx.importorder 文件打开导入; ======================================================================== ======== 38. Copy Qualified Name 拷贝类全名 ======================================================================== ======== 选中 Java 源文件中的类名,然后鼠标右键->Copy Qualified Name, 得到的结构格式是包结构格式,如下: com.taotling.riskctrl.Access 如果是在 Package Explorer 中选中 Java 源文件,然后鼠标右键->Copy Qualified Name, 得到的格式是路径格式,如下: /foo_20100713/src/com/taotling/riskctrl/Access.java 如果选中一个方法,鼠标右键->Copy Qualified Name, 得到的格式如下: com.taotling.riskctrl.Access.check(CheckValue) ======================================================================== ======== 39. Debug 的时候跳回上一个 Frame 重新进入被选中的 Stack Frame ======================================================================== ======== Eclipse 中 drop to frame 的调试技巧 解释如下: Select the [ Drop to Frame command ] to re-enter the selected stack frame in the Debug View. Note this command is only available if the current VM supports drop to frame and the selected stackframe is not the top frame or a frame in a native method. 就是说,这个功能可以重新跳到当前方法的开始处重新执行, 并且所有上下文变量的值也回到那个时候。 不一定是当前方法,可以点击当前调用栈中的任何一个 frame 跳到那里(除了最开 始的那个 frame)。 主要用途是所有变量状态快速恢复到方法开始时候的样子重新执行一遍, 即可以一遍又一遍地在那个你关注的上下文中进行多次调试(结合改变变量值等其 它功能), 而不用重来一遍调试到哪里了。 当然,原来执行过程中产生的副作用是不可逆的(比如你往数据库中插入了一条记 录)。 这里也说了如何使用这个功能: http://www.javalobby.org/forums/thread.jspa?threadID=15271&tstart=0 引用如下: ----------------------------------------------------------------------- ---- You can't know where you are without knowing where you've been. It's true in life, and it is especially true in debugging code. Placing a breakpoint in a method to test code is usually only useful if you know the context of how the method was executed. The main 'Debug' view of the 'Debug' perspective shows a stack trace of the methods that have led to the current point. Each element in this stack trace is referred to in Eclipse as a 'frame'. A frame is nothing more than the variable state of a method right when the method it called was executed. You can preview the state of a frame simply by clicking on it in the 'Debug' view. Notice that once selected you can see the values in the variable view at the point that the child method 'methodB' was called. It is possible to preview the state of any frame simply by selecting it in the 'Debug' view. What if, however, you've decided that you missed an important state in the execution process; perhaps the breakpoint was in the wrong place, or maybe you accidentally stepped over some code you wanted to inspect earlier in the process. Eclipse has a feature called 'Drop to Frame'. 'Drop to Frame' essentially lets you 'rewind' the execution to the beginning of any method in the stack. This is especially useful when performing variable modification or code hotswapping - both features I plan to discuss in detail future articles - traditional debugging, however, can still benefit greatly from the drop to frame functionality. I personally like to think of drop to frame as my emergency rewind button when I'm dealing with traditional debugging. To drop to a certain frame, select the frame in the 'Debug' view as before, and right click and select the 'Drop to Frame' action. Once done, you will back up to the beginning of the execution of the selected method. Notice that now 'methodB' is no longer on the stack at all, and you are now back in 'methodA'. I highly recommend experimenting with these features; it is something I can't do justice to; it simply has to be experienced. If you find yourself heading for the stop button so you can start your debug session over, take a breath and consider using 'drop to frame' - it can save a huge amount of time. 40. Java Comppiler 的 compiler compliance level 的含义说明 ======================================================================== ======== 查看 Java Comppiler 界面中的"Configure Workspace Settings"; 注意,如果勾选了"Enable project specific settings", 并且勾选了下面"JDK Compliance"中的 "Use compliance from execution environment on the Java Build Path" 使用的"Compiler compliance level"将会是: compiler compliance level 的含义说明: 设置编译级别暨 Eclipse compiler compliance level 为较低版本, 只是让编译器相信你的代码是兼容较低版本的, 在编译时生成的 byteCode(class)兼容较低版本。 这样设置与你写代码时引用的 JDK 是没关系的, 也就是说你在写代码时仍可以引用较高版本的 API(这样就可能导致错误). 设置 compiler compliance level 为较低版本, 这样的好处是当别人使用了较低版本的 Jdk 时也可以引用你写的编译后的代码。 它可以保证编译后的 class 文件的版本一致性。 但是,如果你的代码里面(java source)里面调用了较高版本 jdk 的 API. 那么即使设置了 compiler compliance level 为较低版本, 在较低版本的 JDK 上运行你的代码也会报错。 所以建议在写代码时引用的 JDK,要跟你 compiler compliance level 设置的版本 一致。 41. Find/Replace 中设置回绕查询 ======================================================================== ======== Ctrl+F 弹出 Find/Replace 界面,勾选其"Options"中的"Wrap search"回绕查询; 42. 快速查找哪些方法或类中引用了当前选中的属性或方法或类或其他对象: ======================================================================== ======== (1) 选中需要进行查询的对象或属性; (2) 鼠标右键->References-> 其下有几个选项: Workspace (工作空间中) Project (项目中) Hierarchy (继承结构中) Working Set... (其他 Working Set 中) 每个均表示一定的范围,常用的是 Project,如果使用 Workspace 需要小心查询范 围扩大了; (3) 如果上面的查询没有结果,那就使用: 鼠标右键->Declarations 这表示哪些地方声明了此变量,同样也有以下选项: Workspace Project Hierarchy Working Set... (4) 一般都使用快捷键 Ctrl + Shift + G 查询 Worksapace 范围内, 不过这种方式需要保证只有你用到的工程打开,否则查询的结果有可能含有其他 工程的引用; 如果 Ctrl + Shift + G 查询没有结果,那就试试 Ctrl + G , 有可能在别的地方再次进行了声明而使用,所以引用查询不到; ======================================================================== ======== 关于软件版本: ======================================================================== ======== Alpha: 内部测试版,一般不向外部发布,会有很多 Bug.一般只有测试人员使用。 Beta: 测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。 RC:(Release Candidate) 顾名思义!用在软件上就是候选版本。系统平台上就是发行候选版本。 RC 版不会再加入新的功能了,主要着重于除错。 RTM:(Release to Manufacture) 给工厂大量压片的版本,内容跟正式版是一样的,不过 RTM 版也有出限制、评估版 的。 但是和正式版本的主要程序代码都是一样的。 OEM: 给计算机厂商随着计算机贩卖的,也就是随机版。 只能随机器出货,不能零售。只能全新安装,不能从旧有操作系统升级。 包装不像零售版精美,通常只有一面 CD 和说明书(授权书)。 RVL: 号称是正式版,其实 RVL 根本不是版本的名称。它是中文版/英文版文档破解出来 的。 EVAL: 流通在网络上的 EVAL 版,与"评估版"类似,功能上和零售版没有区别。 RTL:Retail(零售版) 真正的正式版,正式上架零售版。 在 Windows 的安装盘的 i386 文件夹里有一个 eula.txt,最后有一行 EULAID,就是 系统的版本。 比 如 简 体 中 文 正 式 版 是 EULAID:WX.4_PRO_RTL_CN, 繁 体 中 文 正 式 版 是 WX.4_PRO_RTL_TW。 其中:如果是 WX.开头是正式版,WB.开头是测试版。_PRE,代表家庭版;_PRO,代表 专业版。 总结版本号: V(Version): 即版本,通常用数字表示版本号。(如:EVEREST Ultimate v4.20.1188 Beta) Build: 用数字或日期标示版本号的一种方式。(如:VeryCD eMule v0.48a Build 071112) SP: Service Pack,升级包。(如:Windows XP SP 2/Vista SP 1) 授权和功能划分: Trial: 试用版,通常都有时间限制,有些试用版软件还在功能上做了一定的限制。可注册 或购买成为正式版. Unregistered: 未注册版,通常没有时间限制,在功能上相对于正式版做了一定的限制。可注册或 购买成为正式版。 Demo: 演示版,仅仅集成了正式版中的几个功能,不能升级成正式版。 Lite:精简版 Full version:完整版,属于正式版。 语言划分: SC :Simplified Chinese 简体中文版。 CN :简体中文版 GBK :简体中文汉字内码扩展规范版。 TC :Traditional Chinese 繁体中文版。 CHT :繁体中文版 BIG5:繁体中文大五码版。 EN :英文版 Multilanguage:多语言版 UTF8:Unicode Transformation Format 8 bit,对现有的中文系统不是好的解 决方案。 开发阶段划分: α (Alpha)版: 内测版,内部交流或者专业测试人员测试用。Bug 较多,普通用户最好不要安装。 β (Beta)版: 公测版,专业爱好者大规模测试用,存在一些缺陷,该版本也不适合一般用户安装。 γ (Gamma)版: 相当成熟的测试版,与即将发行的正式版相差无几。 RC 版: Release Candidate。 RC 版: Release Candidate 的缩写,意思是发布倒计时,候选版本,处于 Gamma 阶段, 该版本已经完成全部功能并清除大部分的 BUG。 到了这个阶段只会除 BUG,不会对软件做任何大的更改。 从 Alpha 到 Beta 再到 Gamma 是改进的先后关系,但 RC1、RC2 往往是取舍关系。 Final:正式版。 其他版本 Enhance :增强版或者加强版 属于正式版 1 Free :自由版 Release :发行版 有时间限制 Upgrade :升级版 Retail :零售版 Cardware:属共享软件的一种,只要给作者回复一封电邮或明信片即可。 (有的作者并由此提供注册码等),目前这种形式已不多见。/ S Plus :属增强版,不过这种大部分是在程序界面及多媒体功能上增强。 Preview :预览版 Corporation & Enterprise :企业版 Standard:标准版 Mini :迷你版也叫精简版只有最基本的功能 Premium :贵价版 Professional :专业版 Express :特别版 Deluxe :豪华版 Regged :已注册版 Rip :是指从原版文件(一般是指光盘或光盘镜像文件)直接将有用的内容(核心内 容)分离出来, 剔除无用的文档,例如 PDF 说明文件啊,视频演示啊之类的东西,也可以算做是 精简版. 但主要内容功能是一点也不能缺少的! 另:DVDrip 是指将视频和音频直接从 DVD 光盘里以文件方式分离出来。 RTM 版:这基本就是最终的版本,英文是 Release To Manufactur,意思是发布 到生产商。 Original Equipment Manufacturer (OEM) You may license products through an Original Equipment Manufacturer (OEM). These products, such as Windows operating systems, come installed when you purchase a new computer. OEM 软件是给电脑生产厂的版本,无需多说。 Full Packaged Product (FPP)/Retail Physical, shrink-wrapped boxes of licensed product that can be purchased in a local retail store or any local software retailer. FPP 就是零售版(盒装软件),这种产品的光盘的卷标都带有"FPP"字样, 比如英文WXP Pro的FPP版本的光盘卷标就是WXPFPP_EN,其中WX表示是Windows XP, P 是 Professional(H 是 Home),FPP 表明是零售版本,EN 是表明是英语。 获得途径除了在商店购买之外,某些 MSDN 用户也可以得到。 Volume Licensing for Organizations (VLO) You may enjoy potentially significant savings by acquiring multiple product licenses. Depending on the size and type of your organization. 团体批量许可证(大量采购授权合约),这是为团体购买而制定的一种优惠方式。 这种产品的光盘的卷标都带有"VOL"字样,取"Volume"前 3 个字母,以表明是批量, 比如英文WXP Pro的VOL版本的光盘卷标就是WXPVOL_EN,其中WX表示是Windows XP, P 是 Professional(VOL 没有 Home 版本),VOL 表明是团体批量许可证版本,EN 是表 明是英语。 获得途径主要是集团购买,某些 MSDN 用户也可以得到。 在很多软件下载的时候,你会发觉标识为 GA 或者 CRx 等。比如 MySQL 和 JBoss 都 采用这种标识。 那什么是 GA 呢。GA 是 Generally Available 的缩写, 意思是开发团队认为该版本是稳定版(有的软件可能会标识为 stable 版或者 production 版, 其意思和 GA 相同),可以在较为关键的场合使用。 如果你是要用在生产中的软件,或者你是一个新手,那么你最好选用 GA 版本。 这是测试最为充分,最为稳定的版本。 RC 就是 Release Candidate(候选版本)的简称 GA:General Availability,正式发布的版本,在国外都是用 GA 来说明 release 版 本. 本 文 出 自 “ 未 來 不 是 夢 ” 博客,请务必保留此出处 http://zjxbw.blog.51cto.com/2808787/543792
还剩65页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

1031

贡献于2013-01-02

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf