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=.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:\Programs\Java\spring-framework-2.5.6.SEC01\dist\resources\spring-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:\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/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%\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 ***<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路径]\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$表。
此篇文章转自讯猫官方博客http://blog.163.com/messcat@126/blog/static/172090879201191244730471/觉得写得很全就转过来了,以备自己在日后的学习中方便查找!