其中就有?TALINA_OPTS%这一项。这样tomcat在启动时就会将内存设置为指定的值。
2. 适合将tomcat作为系统服务启动,这时候上面设置CATALINA_OPTS属性的方法就不适用了,
因为作为系统服务的话,系统启动时调用的是 %tomcat_home%bintomcat5w.exe,
他读取注册表中的值,而不是catalina.bat的设置,因此需要修改注册表:
解决办法,修改注册表:
HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationTomcat Service ManagerTomcat5Parameters JavaOptions
原值为
-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编码:
================================================================================
定位到:
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=.abcdefghijklmnopqrstuvwx yz
保存.
(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.SEC01distresourcesspring -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:ProgramsGenuitecMyEclips e8.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%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"
下面有加载系统设置的相关属性。
其中就有?TALINA_OPTS%这一项。这样tomcat在启动时就会将内存设置为指定的值。
2. 适合将tomcat作为系统服务启动,这时候上面设置CATALINA_OPTS属性的方法就不适用了,
因为作为系统服务的话,系统启动时调用的是 %tomcat_home%bintomcat5w.exe,
他读取注册表中的值,而不是catalina.bat的设置,因此需要修改注册表:
解决办法,修改注册表:
HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationTomcat Service ManagerTomcat5Parameters JavaOptions
原值为
-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编码:
================================================================================
定位到:
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=.abcdefghijklmnopqrstuvwx yz
保存.
(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.SEC01distresourcesspring -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:ProgramsGenuitecMyEclips e8.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%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"
下面有加载系统设置的相关属性。
其中就有?TALINA_OPTS%这一项。这样tomcat在启动时就会将内存设置为指定的值。
2. 适合将tomcat作为系统服务启动,这时候上面设置CATALINA_OPTS属性的方法就不适用了,
因为作为系统服务的话,系统启动时调用的是 %tomcat_home%bintomcat5w.exe,
他读取注册表中的值,而不是catalina.bat的设置,因此需要修改注册表:
解决办法,修改注册表:
HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationTomcat Service ManagerTomcat5Parameters JavaOptions
原值为
-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$表。
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):
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):
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版本================================================================================
================================================================================
================================================================================
配置文件(eclipse.ini或myeclipse.ini):
================================================================================
2009-06-16所有Eclipse,MyEclipse 都 Could not create the Java virtual machine.
头天还能正常使用,配置如下:
(1) MyEclipse7.0/myeclipse.ini
================================================================================
-debug
options
-startup
Commonpluginsorg.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar
--launcher.library
Commonpluginsorg.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731
-clean
-configuration
configuration
-vm
D:ProgramSunJavajdk1.6.0_13binjavaw.exe
-vmargs
-Xms696M
-Xmx696M
-XX:PermSize=128M
-XX:MaxPermSize=128M
-XX:+UseParallelGC
================================================================================
现在改为:
================================================================================
-debug
options
-startup
Commonpluginsorg.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar
--launcher.library
Commonpluginsorg.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731
-clean
-configuration
configuration
-vm
D:ProgramSunJavajdk1.6.0_13binjavaw.exe
-vmargs
-Xms648M -->修改处
-Xmx648M -->修改处改为649就不行,比原来少796-648=48M
-->此时JVM所使用内存总量: 648(-Xmx)+128(-XX:MaxPermSize)=776M
-XX:PermSize=128M
-XX:MaxPermSize=128M
-XX:+UseParallelGC
================================================================================
根据上面能使用的内存总量776M,最后这样分配
================================================================================
-debug
options
-startup
Commonpluginsorg.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar
--launcher.library
Commonpluginsorg.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731
-clean
-configuration
configuration
-vm
D:ProgramSunJavajdk1.6.0_13binjavaw.exe
-vmargs
-Xms520M
-Xmx520M
-XX:PermSize=256M
-XX:MaxPermSize=256M
-XX:+UseParallelGC
================================================================================
(2) EclipseGanymedeJee.v3.4.0/eclipse.ini
====================
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
pluginsorg.eclipse.osgi_3.4.0.v20080605-1900.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
====================
改为:
====================
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
pluginsorg.eclipse.osgi_3.4.0.v20080605-1900.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx492m //修改处493m都不行比原来少512-492=20M
====================
(3) MyEclipse 6.5.1-GA-20080715/eclipse/elipse.ini
============================================================================
-debug
options
-vm
javaw.exe
-clean
-showsplash
com.genuitec.myeclipse.product.ide
--launcher.XXMaxPermSize
1024m
-vmargs
-Xms760m
-Xmx760m
-Duser.language=en
-XX:PermSize=64M
-XX:MaxPermSize=64M
-XX:+UseParallelGC
============================================================================
改为:
============================================================================
-debug
options
-vm
javaw.exe
-clean
-showsplash
com.genuitec.myeclipse.product.ide
--launcher.XXMaxPermSize
1024m
-vmargs
-Xms712m
-Xmx712m //改为713都不行比原来少760-712=48M
-Duser.language=en
-XX:PermSize=64M
-XX:MaxPermSize=64M
-XX:+UseParallelGC
============================================================================
MyEclipse7.5配置
============================================================================
原配置为:
-startup
../Commonpluginsorg.eclipse.equinox.launcher_1.0.101.R34x_v20081125.jar
--launcher.library
../Commonpluginsorg.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731
-clean
-configuration
configuration
-vm
D:ProgramGenuitecCommonbin arycom.sun.java.jdk.win32.x86_1.6.0.013jrebinclientjvm.dll
-vmargs
-Xmx512m
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=64m
修改为:
----------------------------------------------------------------------------
-debug
options
-startup
../Commonpluginsorg.eclipse.equinox.launcher_1.0.101.R34x_v20081125.jar
--launcher.library
../Commonpluginsorg.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731
-clean
-configuration
configuration
-vm
D:ProgramSunJavajdk1.6.0_13binjavaw.exe
-vmargs
-Xms648m
-Xmx648m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:ReservedCodeCacheSize=128m
-XX:+UseParallelGC
MyEclipse8.0GA配置
============================================================================
(1) 2009-12-01--------------------------------------------------------------
-debug
options
-startup
../Common/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
../Common/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-install
D:/Programs/Genuitec/MyEclipse8.0GA
-vm
D:/Programs/Genuitec/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client/jvm.dll
-configuration
configuration
-vmargs
-Xms648m
-Xmx648m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:ReservedCodeCacheSize=128m
-XX:+UseParallelGC
-DNLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
-Duser.language=zh
这个配置启动会出现dos窗口,不会出现启动的图片画面,
加入
-debug
options
是为了显示JVM的heap status状态条,其实用不这样做,
只需定位到windows->Preferences->
在其右边的界面中,找到"Show heap status",并勾选上,然后确定即可;
(2) 2010-03-03--------------------------------------------------------------
-startup
../Common/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
../Common/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-install
D:/Programs/Genuitec/MyEclipse8.0GA
-vm
D:/Programs/Genuitec/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client/jvm.dll
-configuration
configuration
-vmargs
-Xms512m
-Xmx512m
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=128m
-XX:+UseParallelGC
-showsplash
-Dosgi.splashLocation=D:/Programs/Genuitec/Common/plugins/com.genuitec.myeclipse.product8_8.0.0.me200911192201/splash.bmp