打印

[Java] 子若的JAVA入门本本

Windows和Linux下搭建J2sdk的环境

J2SDK 作为jsp系统配置中必不可少的组件,越来越多的得到应用。
下来是我整理的以往工作时搜集的资料。使用时方便查询,希望对广大的工程师有帮助。
windows服务器环境下 j2sdk 的安装和环境设置
第一步:进入SUN公司JAVA的JDK 1.4版本免费安装程序,
下载主页地址: http://java.sun.com/j2se/1.4/download.html 单击download,进入下载协议,选择接受协议。
第二步:JDK安装程序: j2sdk-1_4_1_04-windows-i586.exe
第三步:选择安装jdk的目录,如设为d:j2sdk1.4.1_04
第四步:设置系统环境变量: 增加变量JAVA_HOME,内容为 d:j2sdk1.4.1_04 增加变量CLASSPATH,它里面的内容为: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar; (.;一定不能少,因为它代表当前路径) 增加PATH的内容为: %JAVA_HOME%bin
第五步:测试jsdk是否安装成功 写一个简单的java程序来测试J2SDK是否已安装成功:     
 public class Test{
  public static void main(String args[]){
      System.out.println("This is a test program.");   
                                                         }   
                         }   
将上面的这段程序保存为文件名为Test.java的文件。   
然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令   javac Test.java   java Test   
此时如果看到打印出来This is a test program.的话说明安装成功了,
如果没有打印出这句话,你需要仔细检查一下你的配置情况。


linux服务器环境下 j2sdk 的安装和环境设置
1、到www.sun.com下载j2sdk for linux
2、安装jdk1.4.2 for linux,以下是在FC3下为例:ls 以root身份登录
     (1)打开一个终端
     (2)输入命令ls -l 查看安装文件的权限
     (3)输入命令chmod a+x j2sdk-1_4_2_08-linux-i586-rpm.bin,给所有的用户添加执行的权限。
     (4)安装jdk: ./j2sdk-1_4_2_08-linux-i586-rpm.bin 此步完成后,会生成j2sdk-1_4_2_08的系统文件
3、将j2sdk-1_4_2_08目录复制到 /usr/local/ 目录下。
4、设置环境变量 在root目录下,编辑 .bash_profile 文件。

在文件中加入 JAVA_HOME=/usr/local/ j2sdk-1_4_2_08 CLASSPATH=/ usr/local j2sdk-1_4_2_08/jre/lib/rt.jar PATH=$PATH:/usr/local / j2sdk-1_4_2_08/bin export JAVA_HOME PATH CLASSPATH 重新登陆后测试。

4 测试 运行:java –version 返回 java version "1.4.1_07" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_07-b02) Java HotSpot(TM) Client VM (build 1.4.1_07-b02, mixed mode) 为正确配置。

TOP

Eclipse+JBoss+MySQL开发环境的设置

作为开发环境,如果采用经典配置:JBuilder+Weblogic+Oracle,自是得心应手,但价格是惊人的。此配置主要是针对大型或超大型应用,硬件要求也很高,针对国内以中小型应用为主的现况,不作推荐。 虽然国内开发者早已习惯了D版,但笔者以为还是防患于未然,应尽早加入OpenSource行列,促进国内软件业的发展。 本文所推荐的Eclipse、JBoss、MySQL均是名气很高的开源软件,并且非常实用。 1、JDK:到http://java.sun.com下载,推荐使用J2SDK1.4.X 2、JBoss:到http://www.jboss.org下载,笔者使用jboss-3.0.4_tomcat-4.0.6 3、MySQL:到http://www.mysql.com下载,笔者使用mysql-4.0.13,另须下载MySQL Control Center(图形化管理工具),到http://sourceforge.net/projects/mmmysql/下载MySQL的JDBC驱动程序,如mm.mysql-2.0.14-you-must-unjar-me.jar 4、Eclipse:到http://www.eclipse.org下载,最新版本为3.0M8,如果是新手推荐下载2.1.2和语言包(2.1.2_Translations)。到http://www.objectlearn.com/下载lomboz(此插件开发J2EE必需),需要注意的是lomboz的版本必须与eclipse版本一致,否则不正常。 环境设置(以win2000下D盘作根目录为例): 1、JDK的安装配置在此不再说明。 2、将JBoss解压到D:,将MySQL的JDBC驱程包中的mm.mysql-2.0.14-bin.jar解压到D:jboss-3.0.4_tomcat-4.0.6serverdefaultlib中,再将D:jboss-3.0.4_tomcat-4.0.docsexamplesjca目录下的mysql-service.xml拷贝到D:jboss-3.0.4_tomcat-4.0.6serverdefaultdeploy目录下找到相应段落并作如下修改: MySqlDS jdbc:mysql://localhost:3306/test org.gjt.mm.mysql.Driver root 3、安装MySQL和MySQL Control Center,到mysqlin目录中启动mysqld-nt.exe,即开启mysql服务。使用MySQL Control Center很方便地进行管理(类似SQL Server)。 4、将Eclipse(以3.0M8为例)解压到D:,再将lomboz包中plugins目录中的内容解压到D:Eclipseplugins中,启动eclipse。(1)window--preferences--lomboz,设置JDK Tools.jar,Server Definitions--Server types:JBoss 3.0--Application Server Directory:D:/jboss-3.0.4_tomcat-4.0.6;Classpath Variable:D:/jboss-3.0.4_tomcat-4.0.6(2)window--Customize Perspective--Shortcuts--New--Java,勾选lomboz J2EE Wizards

作为开发环境,如果采用经典配置:JBuilder+Weblogic+Oracle,自是得心应手,但价格是惊人的。此配置主要是针对大型或超大型应用,硬件要求也很高,针对国内以中小型应用为主的现况,不作推荐。 虽然国内开发者早已习惯了D版,但笔者以为还是防患于未然,应尽早加入OpenSource行列,促进国内软件业的发展。 本文所推荐的Eclipse、JBoss、MySQL均是名气很高的开源软件,并且非常实用。
1、JDK:到http://java.sun.com下载,推荐使用J2SDK1.4.X
2、JBoss:到http://www.jboss.org下载,笔者使用jboss-3.0.4_tomcat-4.0.6
3、MySQL:到http://www.mysql.com下载,笔者使用mysql-4.0.13,另须下载MySQL Control Center(图形化管理工具),到http://sourceforge.net/projects/mmmysql/下载MySQL的JDBC驱动程序,如mm.mysql-2.0.14-you-must-unjar-me.jar
4、Eclipse:到http://www.eclipse.org下载,最新版本为3.0M8,如果是新手推荐下载2.1.2和语言包(2.1.2_Translations)。到http://www.objectlearn.com/下载lomboz(此插件开发J2EE必需),需要注意的是lomboz的版本必须与eclipse版本一致,否则不正常。


环境设置(以win2000下D盘作根目录为例):
1、JDK的安装配置在此不再说明。
2、将JBoss解压到D:,将MySQL的JDBC驱程包中的mm.mysql-2.0.14-bin.jar解压到D:jboss-3.0.4_tomcat-4.0.6serverdefaultlib中,再将D:jboss-3.0.4_tomcat-4.0.docsexamplesjca目录下的mysql-service.xml拷贝到D:jboss-3.0.4_tomcat-4.0.6serverdefaultdeploy目录下找到相应段落并作如下修改: MySqlDS jdbc:mysql://localhost:3306/test org.gjt.mm.mysql.Driver root
3、安装MySQL和MySQL Control Center,到mysqlin目录中启动mysqld-nt.exe,即开启mysql服务。使用MySQL Control Center很方便地进行管理(类似SQL Server)。
4、将Eclipse(以3.0M8为例)解压到D:,再将lomboz包中plugins目录中的内容解压到D:Eclipseplugins中,启动eclipse。(1)window--preferences--lomboz,设置JDK Tools.jar,Server Definitions--Server types:JBoss 3.0--Application Server Directory:D:/jboss-3.0.4_tomcat-4.0.6;Classpath Variable:D:/jboss-3.0.4_tomcat-4.0.6(2)window--Customize Perspective--Shortcuts--New--Java,勾选lomboz J2EE Wizards

TOP

教Eclipse说你的本土语言
/** *译者声明:
*在能力之上力求信、达、雅,但由于本人水平有限,某些表述可能不准确或不流畅。
*敬请见谅并恳请读者批评指正。
*/
教Eclipse说你的本土语言
摘要
一直以来,Eclipse项目及一些最高级项目的翻译都是由Eclipse基金会在Eclipse发布每个主要版本时来完成的。然而官方却没有关于哪些
语言包可用,在哪可以得到,怎样安装和使用等的说明。本文将一步一步教你有哪些语言包,到哪下载,如何安装,怎样以不同的语言启动 Eclipse。本文中在不同操作系统下以不同的语言启动Eclipse的例子,涵盖的语言包括了单字节字符如俄语,双字节字符如繁体中文,双向字 符如阿拉伯语,操作系统有RHEL WS 4, Windows XP, 和Mac OS X 10.3 Panther,并有一些有用的提示。通过本文你可以全面地学会怎样以已 翻译的不同的语言启动Eclipse——即使你所使用的语言环境在本文中没有详细的叙述。 原文作者:IBM公司 Kit Lo 2006年2月24日翻 译:饮海(glconline@163.com)
--------------------------------------------------------------
序言
一直以来,Eclipse项目及一些最高级项目的翻译都是由Eclipse基金会在Eclipse发布每个主要版本时来完成的。然而官方消息却没有关于 有哪些语言包,在哪可以得到,怎样安装和使用的说明。本文将一步一步教你有哪些语言包,到哪下载,如何安装,怎样以不同的语言启动 Eclipse。
可用资源
最新的Eclipse 3.1语言包可以在http://download.eclipse.org/down ... 510051300/index.php下 载。
http://www.eclipse.org/org/press-release/20051012nlscb.html可以查看Eclipse发布的消息。
这些语言包是基于Eclipse 3.1.1版本 翻译的,但是对所有的3.1的维护版本都可用。从技术层面上来说,除非是要修复严重的程序bug,否则的话,一般不会出现新词,如果在 Eclipse 3.1的维护版本中添加了新词,这些新词在这个版本的语言包不会被翻译。 不同类型的语言包 Eclipse 3.1可用的不同类型语言包如下面所列:
·NLpack1——包含了德语、西班牙语、法语、意大利语、日语、韩语、巴西语、葡萄牙语、繁体中文和简体中文Eclipse项目和插件的本土语 言元素和片段。
·NLpack2——包含了捷克语、匈牙利语、波兰语和俄语Eclipse项目和插件的本土语言元素和片段。
·NLpackBidi——包含了阿拉伯语项目和插件的本土语言元素和片段。
·NLpack1_FeatureOverlay——包含了德语、西班牙语、法语、意大利语、日语、韩语、巴西语、葡萄牙语、繁体中文和简体中文Eclipse项目 元素属性文件的翻译。
·NLpack2_FeatureOverlay——包含了捷克语、匈牙利语、波兰语和俄语Eclipse项目元素属性文件的翻译。
·NLpackBidi_FeatureOverlay——包含了阿拉伯语Eclipse项目元素属性文件的翻译。
下图显示了Eclipse 3.1不同类型语言包所包含的文件:
图片地址: 图1——不同类型语言包所包含的文件
注意:不符合Java资源命名规则的文件如HTML和XML文件在该插件目录的子目录下。
安装Eclipse 在安装语言包之前,我们假设你已经安装了Eclipse的某一个版本,最新版的Eclipse 3.1.2可以在 download.eclipse.org/downloads/drops/R-3.1.2-200601181600/index.php下载。 注意:Eclipse不包含Java运行环境{Java runtime environment (JRE)},你需要安装一个1.4.2版或更高版本的Java运行环境或Java开发
工具包{Java development kit (JDK)}以运行Eclipse。如果寻找Java运行环境(JRE)需要帮助可以查看 http://download.eclipse.org/down ... /java-runtimes.html。 如何得到语言包 你必须根据你所安装的Eclipse的版本来下载对应的语言包。
首先,在浏览器中打开这个页面 http://download.eclipse.org/down ... 510051300/index.php。如果你已经下载了Eclipse JDT Runtime,滚动页面至JDT Runtime Language Packs表格处。
如果你下载的是Eclipse PDE SDK,滚动页面至PDE SDK Language Packs表格处, 如果你下载的是其他的安装文件找到相应的Language Packs表格处。在每个语言包表格(请参阅图2)中,第一列告诉你这个语言包包含了哪些 语言。第二列是Windows 98/ME/2000/XP系统下的相应的语言包。
第三列是Linux (x86/GTK 2)系统下相应的语言包。图片地址: 图2——Eclipse SDK语言包表 安装语言包 例如你现在要在Windows XP系统中安装繁体中文语言包。你已经下载了NLpack1-eclipse-SDK-3.1.1a-win32.zip和 NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip(图2中红框所示)。只需把语言包解压到Eclipse安装目录下(如D:\eclipse-SDK-3.1.1- win32)就可完成语言包的安装。要验证安装是否成功,在Eclipse SDK中依次打开"帮助>软件更新>管理配置(Help>Software Updates>Manage Configuration)"。
在管理配置(Product Configuration)窗口(见图3)左边展开目录树。如果安装成功可以看到已安装了的Eclipse元素相应 的语言包。图片地址: 图3——产品配置窗口 以不同语言启动Eclipse 在安装了Eclipse和语言包后有两种不同的方法来以不同的语言启动Eclipse。 ·按你的操作系统的语言启动Eclipse(例如,你使用的是日语版的Windows XP,而且你想用日语启动Eclipse),你只需要运行Eclipse可执行 文件就可以了。在Windows下,这个可执行文件的名称是eclipse.exe,这个文件位于安装目录的eclipse子目录下。如果Eclipse安装在 D:\eclipse-SDK-3.1.1-win32,则这个可执行文件是D:\eclipse-SDK-3.1.1-win32\eclipse\eclipse.exe。 ·如果你想以和操作系统不同的语言启动Eclipse(例如,使用的是英语版的Windows XP,而你想以日语启动Eclipse——在此假设你已经安装 了所需的包括键盘布局和输入法编辑器在内的操作系统语言支持),你可以在启动Eclipse时指定-nl 命令行参数。
在Windows系统下,有两种方法指定Eclipse运行命令行参数: о命令行 ·打开Windows命令提示符 ·更改目录到Eclipse安装目录的eclipse子目录下(如D:\eclipse-SDK-3.1.1-win32\eclipse) ·输入下面的命令,以日语启动Eclipse eclipse.exe –nl ja 图片地址: оWindows快捷方式 ·给Eclipse可执行文件(如D:\eclipse-SDK-3.1.1-win32\eclipse\eclipse.exe)创建一个快捷方式 ·右击快捷方式图标,在弹出菜单中选择属性 ·在目标的内容后添加–nl ja命令行参数图片地址: ·点击确定,保存更改 ·双击快捷方式,以日语启动Eclipse 注意:Mac OS X 10.3 Panther系统不支持Eclipse 3.1语言包,更多信息参阅本文下面的在Mac OS X 10.3 Panther系统中以繁体中文启动 Eclipse。
在Mac OS X下,如果要传递参数给Eclipse,需要修改Eclipse应用程序包内的Info.plist文件: о按住Control键并点击Eclipse应用程序包图标(将会弹出一个菜单) о在弹出菜单中选择显示包内容(Show Package Contents) 图片地址: о在内容子文件夹下找到Info.plist并用你最常用的文本编辑器打开 о在Eclipse键的后面添加命令行选项-nlja
图片地址: о保存更改 о双击Eclipse应用程序包图标,以日语运行Eclipse 下面是在不同的系统环境下以不同的语言启动Eclipse的一些例子,我们假设你已经安装了所有的NLpack1, NLpack2, NLpackBidi, NLpack1_FeatureOverlay, NLpack2_FeatureOverlay和NLpackBidi_FeatureOverlay语言包。
/** *说明:
*原文中接下来的一部分内容例举了在其它的操作系统如Red Hat Enterprise Linux WS 4,
*Apple Mac OS X 10.3 Panther下以其它的语言如俄语、阿拉伯语、繁体中文启动Eclipse
*在此略过,有需要的读者请参考原文: *http://www.eclipse.org/articles/ ... nguage/article.html
*/
其它Eclipse项目的语言包 还可得到以下的Eclipse项目和Eclipse 3.1的子项目的翻译。
这些项目及下载语言包的地址如下表所示:
Eclipse工具项目
·Visual Editor (VE) http://www.eclipse.org/vep/WebContent/docs/translations/translation.html
·UML2 http://download.eclipse.org/tools/uml2/scripts/downloads.php
·Graphical Editor Framework (GEF) http://www.eclipse.org/gef/translations/translation.html
·EMF / XSD http://download.eclipse.org/tools/emf/scripts/downloads.php#NLS21 Eclipse
网络工具平台项目 http://download.eclipse.org/webtools/downloads/translations/M-0.7.1-200509270720/translation.html
Eclipse测试性能工具项目 http://www.eclipse.org/tptp/home/downloads/drops/TPTP-4.0.1.html
可以参照上面所述的安装过程来安装这些语言包. 结论感谢Eclipse基金会为这些语言包所做出的贡献。全球的Eclipse用户都会对Eclipse感觉更加亲切——因为Eclipse说他们自己的本土语言。 商标 IBM和PowerPC是IBM公司在美国或其它国家或两者的注册商标。 Java和所有基于的商标是Sun Microsystems, Inc. 在美国或其它国家或两者的商标。 Linux是Linus Torvalds在美国或其它国家或两者的商标。 Microsoft是Microsoft Corporation在美国或其它国家或两者的商标。其它公司,产品,或服务名称可能是其它公司的商标或服务标记。
/**
*全文结束 *希望这份译文能给你的学习带来帮助
*谢谢你的支持
*/

TOP

Java程序的加密和反加密
首先我们来看看Java程序的反加密,也就是通常所说的Crack过程,只有明白了这个过程,我们才能有效的对我们的程序进行加密。
通常我们得到的Java程序的Crack包有两种,一种属于KeyGen(注册码生成器)、一种属于替换修改;
我们先看第一种,当我们找到一个应用程序的KeyGen的时候我们总是很佩服那个做出KeyGen的人,觉得他很厉害,但是你仔细分析一下,为什么他能做出KeyGen呢?只有
他对这个Java程序的加密算法了解的非常清楚;这种人有哪些呢?一个是那个公司里面的人,那不可能,除非内讧,还又呢,就是猜想,反推,这个可能吗?呵呵,更不可能,那这个算法从哪里来呢?呵呵,往往泄漏秘密的就是秘密本身……回过头来想想,Java应用程序怎么知道你输入的注册码是否正确呢?呵呵,那你就该从应用程序入手……
得到的它的加密算法,自然KeyGen就不在话下了……(但是这也有列外,如果它是用的公钥秘钥对加密的,就没有办法喽,只能用第二种方法。)

这种办法只适合对付只要一个注册号,别的什么都不要的情况,经典代表Borland JBuilder & Optimizeit Suite
再看第二种,为什么要用替换修改?我们是修改了那部分呢?不用想,肯定是License验证的部分,为什么我们不像上面的方法那样找加密算法呢?原因有两种:(1)使用上面的办法搞不定;(2)Java程序不仅要Key,还有其他的License配置;遇到这种情况,我们只要找到用于License验证的类,进行修改替换就行了。
这种办法使用于任何情况,经典代表BEA WebLogic
经过上面的分析,我们的问题就集中了,关键就是怎么找到用于License验证的部分或加密算法的部分,我们需要3个工具:一个是Sun公司提供的标准JVM:),一个是你
的耐心和细心:),一个是Jad(经典Java反编译工具)。

第一步是定位,这也是最关键的一步,我们这里以Together For JBuilder Edition为例,启动Together,先看看长什么样子?喔,上来就问我要License;Ok,
每关系,退出;找到Together的启动Bat文件,找到它的启动命令:java .....,OK,在Java启动的时候给一个参数:“ -Xrunhprof:cpu=times”,保存,在启动,还是要
License,退出,这个时候,我们可以发现,在这个目录下多了一个“java.hprof.txt”文件,打开一看,就是我要的JVM的Dump文件,好多内容啊,没关系,慢慢看来。

我们可以看见这个文件里面有好多熟悉的东西啊:java.*/com.sun.*/javax.*等等,但这个不是我们关心的,我们要的是com.togethersoft.*或者是一些没有包名的zd.d等等。(这里插一句,几乎所有的Java应用程序都会混淆的,其实混淆的原理也很简单,我们后面再说。)先找找有没有License有关的,Serach一下,嘿嘿,果然,474行:com.togethersoft.together.impl.ide.license.LicenseSetup.execute([DashoPro-V2-050200]:Unknown line),Ok上那堆classpath中的Jar包里面找一下吧(推荐用WinRAR),找到了之后用Jad反编译,一看,这个没有混淆,但是用了一个zae的类,这个看名字就知道混淆过了,先不理它,再看看下面一句IdeLicenseAccess.setLicense(zae1),Ok接着找到IdeLicenseAccess,哈哈,就这点名堂,所有的License验证都是走的这个类,面向对象的思想不错,呵呵:)
定位定完了,接下来的事情就是按猜想的方法修改这两个类,屏蔽掉LicenseSetup里面execute方法的实际内容,修改IdeLicenseAccess,让多有的验证都返回true,然后编译,替换;不要高兴太早,这还没有完呢,要有责任心!!启动Together,果然,这下不要License了,有启动画面,进去了,但是一片灰色,怎么回事,一看控制台,一堆错,没关系,就怕不出错,查找根源,还有一个IdeLicenseUtil类出了问题,再反编译,修改,替换;这下搞定了。再启动,测试一下,OK。
就这样,一个Java应用程序搞定了。看看其实也很简单。
再来说说混淆,大家可能都知道没有经过混淆的Java的Class反编译回来连方法和变量的名字都不会变,这是什么原因呢?这就要追述到Class文件的结构了,简单来说,Class文件种包含又一个常数池(constant pool)这个里面就存放了变量和方法的名称等一下和Class相关的东西,我们通常所说的混淆就是用一种工具把这个常数池里面的东东弄的胡涂一点,这样就能骗过反编译器和你,呵呵:)这就是为什么有时候反编译回来的东西编译不过去的原因。
再回过头来说说Java程序的加密;从上面的两种方法来看,Java程序似乎是没有什么完美的办法进行加密的,其实不然,我们必须遵循一些原则,才能有效的保护你的产品。
原则一,尽量使用公钥和秘钥对进行加密;
原则二,不要在加密验证的部分使用面向对象思想:)把验证的方法写在程序的各个角落,并标注为private final void,让编译器替你处理成内联方法;
原则三,尽可能的大幅度混淆:)找个好点的混淆器;

TOP

Java语言实用技巧:常用VI高级命令集锦
十多年前就背过vi的批量替换的命令,可就是记不牢。这不,今天又要上网查了。不过,今天查到的命令以前没有见过:在vi界面下使用命令 :%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin。其中“#”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。嗯~又学了一招。
以下是一篇比较全的vi命令集:(感谢jaxy,感谢chinaitlab)
------------------------------------------------------------------------  
鉴于大家在使用VI 的时候有一定的陌生,在这里借花献佛,从兄弟版[SHELL]中整理出以下关于VI编程的高级技巧,希望对大家学习UNIX有所帮助,并希望大家能结合使用HPUX的心得体会对这些经验进行进一步的扩展。  
1.交换两个字符位置    xp   
2.上下两行调换  ddp   
3.把文件内容反转  :g/^/m0/ (未通过)     
4.上下两行合并   J   
5.删除所有行   dG   
6.从当前位置删除到行尾  d$   
7.从当前位置复制到行尾  y$ 如果要粘贴到其他地方 p 就可以了 由于vi 是建立在 EX 上的 所以 当键入 : 时就来到了 EX 命令状态   
8.   :ab string strings   例如 ":ab usa United States of America" ,   当你在文见里插入 usa 时   United States of America 就蹦出来了  
9.   :map keys new_seq   定义你当前 键盘命令   
10.   :set [all]   vi or ex 的编辑状态  如 显示每行 :set nu   
11.   在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,可刚复制的内容粘贴在光标处的  下面。     
12.   单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S     
13.     :%s/old_word/new_word/g   这个指令是于在整个文件中替换特定字符串     
14.光标控制    k:上移 nk 上移n行  j:下移 nj 下移n行      
将光标移到第n行,按下 mk   将光标移到第m行,按下 "ayk   
即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等    
这样就可以将你常用的需要复用的内容粘贴到不同的寄存器中以备用      想粘贴到某处,直接将光标移到某地,按下 ‘ap 即可,以此类推,b,c........寄存器等    在当前屏幕中  H 跳到第一行  M 跳到中间一行  L 跳到最后一行     
15.   表8-2 删除命令  
删除命令操作  
d l 删除当前字符(与x命令功能相同) 
 d 0 删除到某一行的开始位置  
d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符)  
d w 删除到某个单词的结尾位置  
d 3 w 删除到第三个单词的结尾位置  
d b 删除到某个单词的开始位置  
d W 删除到某个以空格作为分隔符的单词的结尾位置  
d B 删除到某个以空格作为分隔符的单词的开始位置  
d 7 B 删除到前面7个以空格作为分隔符的单词的开始位置  
d) 删除到某个语句的结尾位置  
d 4) 删除到第四个语句的结尾位置  
d( 删除到某个语句的开始位置  
d } 删除到某个段落的结尾位置  
d { 删除到某个段落的开始位置  
d 7 { 删除到当前段落起始位置之前的第7个段落位置  
d d 删除当前行  
d /t e x t 删除从文本中出现“ t e x t”中所指定字样的位置,一直向前直到下一个该字样所出现的  
位置(但不包括该字样)之间的内容  
d fc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括  该字符)之间的内容  
d tc 删除当前行直到下一个字符“ c”所出现位置之间的内容  
D 删除到某一行的结尾  
d $ 删除到某一行的结尾  
5 d d 删除从当前行所开始的5行内容  
d L 删除直到屏幕上最后一行的内容  
d H 删除直到屏幕上第一行的内容  
d G 删除直到工作缓存区结尾的内容  
d 1 G 删除直到工作缓存区开始的内容    修改命令操作  
c l 更改当前字符  
c w 修改到某个单词的结尾位置  
c 3 w 修改到第三个单词的结尾位置  
c b 修改到某个单词的开始位置  
c W 修改到某个以空格作为分隔符的单词的结尾位置  
c B 修改到某个以空格作为分隔符的单词的开始位置  
c 7 B 修改到前面7个以空格作为分隔符的单词的开始位置  
c 0 修改到某行的结尾位置  
c) 修改到某个语句的结尾位置  
c 4) 修改到第四个语句的结尾位置  
c( 修改到某个语句的开始位置  
c } 修改到某个段落的结尾位置  
c { 修改到某个段落的开始位置  
c 7 { 修改到当前段落起始位置之前的第7个段落位置  
c tc 修改当前行直到下一个字符c所出现位置之间的内容  
C 修改到某一行的结尾 
 c c 修改当前行  
5 c c 修改从当前行所开始的5行内容      .重复上一次修改!      
 表8-4 替换命令  替换命令操作  
s 将当前字符替换为一个或多个字符  
S 将当前行替换为一个或多个字符  
5 s 将从当前字符开始的5个字符替换为一个或多个字符      
vi替换使用规则:  :g/s1/s/s2/s3/g   
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换  
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串       

16. fx   往右移动到 x 字符上  
Fx   往左移动到 x 字符上  
tx   往右移动到 x 字符前  
Tx   往左移动到 x 字符后  (注意:以上四个命令中,其中x是键入的字符)  
;   分号,配合 f 和 t 使用,重复一次   
,   逗号,配合 f 和 t 使用,反方向重复一次      
17. vi 环境选项 Solaris ksh     
noautoindent nomodelines noshowmode   
autoprint nonumber noslowopen   
noautowrite nonovice tabstop=8   
nobeautify nooptimize taglength=0   
directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags   
noedcompatible prompt tagstack   
noerrorbells noreadonly term=vt100   
noexrc redraw noterse   
flash remap timeout   
hardtabs=8 report=5 ttytype=vt100   
noignorecase scroll=11 warn   
nolisp sections=NHSHH HUuhsh+c window=23   
nolist shell=/bin/ksh wrapscan   
magic shiftwidth=8 wrapmargin=0   
mesg noshowmatch nowriteany       
For C-Shell:   setenv EXINIT "set nu"   For Bourne or Korn Shell:   
EXINIT="set nu"; export EXINIT   For Korn Shell Only (alternate method):   
typeset -x EXINIT="set nu"   在 .profile 里设置 vi 的环境选项 , 以上均测试过       1
8.标记文本      mchar   用字母char标记当前光标的位置    
`char   移至char所标记处   
 char   移至char标记所在行的开头处   
 "     移至当前行上一次所在位置(在光标移动之后)――一个双引号   
     移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号      
19.   同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。  
但是我发现一个BUG:在用CTRL-SHIFT-6切换到上一个文件后,用:args查看多文件vi状态时,  屏幕底部仍然显示目前vi的是刚才的文件。  (在HP-UX,Solaris,AIX上通过)     也可以使用:   :e#   进行切换    
20.   sco 下VI 要在文本前同样的字符加用  %s/^/要加的内容/g 要在文本后同样的字符加  %s/$/要加的内容/g     
21.   如何去掉文本中的 ^M 硬回车?不必用binary传回去再ascii传回来的方式,用shell或者unix语句实现。    
cat filename |tr -d 15 >newfile   不同的unix系统还存在一些其他不同的命令,如:doscp   sed 也可以实现这个功能.     
dos2unix filename filename2   反之  unix2dos filename filename2     
在vi 中用:$s/^M//g   ^是crtl-V crtl-M       
22.如何在“unix命令行”下将一个文件的某字符串用另一个串换掉    sed s/string1/string2/gp file1 > file2     
23.将/etc/hosts下所有的地址都ping 2次    
1 #/usr/bin/sh   
2 #grad /etc/hosts and ping each address   
3 cat /etc/hosts|grep -v ^# | while read LINE   
4 do   
5 ADDR=`awk {print $1}`   
6 for MACHINE in $ADDR   
7 do   
8 ping $MACHINE -n 2   
9 done   
10 done

TOP

定时执行任务的三种方法
1)java.util.Timer 这个方法应该是最常用的,不过这个方法需要手工启动你的任务:
Timer timer=new Timer(); timer.schedule(new ListByDayTimerTask(),10000,86400000); 这里的ListByDayTimerTask类必须extends TimerTask里面的run()方法。
2)ServletContextListener 这个方法在web容器环境比较方便,这样,在web server启动后就可以自动运行该任务,不需要手工操作。
将ListByDayListener implements ServletContextListener接口,在 contextInitialized方法中加入启动Timer的代码,在contextDestroyed 方法中加入cancel该Timer的代码;
然后在web.xml中,加入listener:
< listener>
< listener-class>com.qq.customer.ListByDayListener< /listener-class>
< /listener>
3)org.springframework.scheduling.timer.ScheduledTimerTask 如果你用spring,
那么你不需要写Timer类了,在schedulingContext-timer .
xml中加入下面的内容就可以了:
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
< beans>
< bean id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean">
< property name="scheduledTimerTasks">
< list>
< ref local="MyTimeTask1"/>
< /list>
< /property>
< /bean>
< bean id="MyTimeTask" class="com.qq.timer.ListByDayTimerTask"/>
< bean id="MyTimeTask1" class="org.springframework.scheduling.timer.ScheduledTimerTask">
< property name="timerTask">
< ref bean="MyTimeTask"/>
< /property>
< property name="delay">
< value>10000< /value>
< /property>
< property name="period">
< value>86400000< /value>
< /property>
< /bean>
< /beans>

TOP

反编译工具jad的简单用法反编译工具jad简单用法
以下假设jad.exe在c:java目录下
一、基本用法
Usage:    jad [option(s)]  
直接输入类文件名,且支持通配符,如下所示。
c:java>jad example1.class
c:java>jad *.class
结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。
二、Option -o
不提示,覆盖源文件
三、Option -s
c:java>jad -sjava example1.class
反编译结果以.java为扩展名。
四、Option -p
将反编译结果输出到屏幕
c:java>jad -p example1.class
将反编译结果重定向到文件
c:java>jad -p example1.class>example1.java
五、Option -d
指定反编译的输出文件目录
c:java>jad -o -dtest -sjava *.class
命令行选择的列表
      -a        - 用JVM字节格式来注解输出
      -af       - 同 -a,但是注解的时候用全名称
      -clear    - 清除所有的前缀
      -b        - 输出多于的括号 (e.g., if(a) { b(); }, default: no)
      -d
- 指定输出文件的文件目录
      -dead      -试图反编译代码的dead 部分(default: no)
      -disass   - 不用用字节码的方式反编译 (no JAVA source generated)
      -f        - 输出整个的名字,无论是类还是方法
      -ff        -输出类的成员在方法之前 (default: after methods)
      -i        - 输出所有的变量的缺省的最初值
      -l    - 将strings分割成指定数目的块的字符 (default: no)
      -lnc      - 将输出文件用行号来注解 (default: no)
      -nl       - 分割strings用新行字符 newline character (default: no)
      -nodos    -不要去检查class文件是否以dos方式写 (CR before NL, default: check)
      -nocast   - 不要生成辅助文件
      -nocode    -不要生成方法的源代码
      -noconv    - 不要转换java的定义符 (default: do)
      -noctor   - 不允许空的构造器存在
      -noinner   -关掉对内部类的支持 (default: turn on)
      -nolvt    - 忽略局部变量的表信息
      -nonlb     - 不要输出一个新行在打开一个括号之前 (default: do)
      -o        - 无需确认直接覆盖输出 (default: no)
      -p        - 发送反编译代码到标准输出 STDOUT (e.g., for piping)

TOP

Java新手看招 常用开发工具介绍
Java的应用越来越广泛,学习Java的人也越来越多。学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic、Visual Basic等开发工具;使用C语言进行程序设计,可以使用Turbo C、Visual C++、C++ Builder等开发工具。这些开发工具集成了编辑器和编译器,是集成开发工具,很方便使用。学习Java程序设计,同样需要方便易用的开发工具。Java的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑。本文对初学者常使用的Java开发工具作一介绍,有助于初学者了解Java常用开发工具并做出选择。
  要建立Java开发环境,离不开Sun的JAVA2 SDK。1998年12月Sun公司发布了Java Software Development Kit(简称JAVA2 SDK),目前的最新版本是J2sdk-1.4.2.05。可在http://Java.sun.com下载。根据运行平台的不同,下载相应的版本并设置好PATH和CLASSPATH。这个软件包提供了Java编译器、Java解释器,但没有提供Java编辑器,因此需要使用者自己选择一个方便易用的编辑器或集成开发工具。下面就介绍几种适合初学者适用的Java开发工具。
  一 UltraEdit
  UltraEdit是共享软件,它的官方网址是:www.ultraedit.com 。最新版本是V10.20b。它是一个功能强大的文本、HTML、程序源代码编辑器。作为源代码编辑器,它的默认配置可以对C/C , VB, HTML, Java和 Perl进行语法着色。用它设计Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计。它具有完备的复制、粘贴、剪切、查找、替换、格式控制等编辑功能。可以在Advanced菜单的Tool Configuration 菜单项配置好Java的编译器Javac和解释器Java,直接编译运行Java程序。
  配置Javac:在Command Line里输入:D:JSPj2sdkinJavac %f,这里Javac的路径要根据JDK的实际安装路径来指定,%f是指当前活动文档的全文件名。在Menu Item Name 里输入Javac ,它显示在Advanced菜单里,这样就可以直接执行它进行编译了。选中Output To List Box和Capture Output ,这样就可以在源代码下面的输出窗口里看到编译时的错误信息了。配置不带参数运行的解释器Java:在Command Line里输入:D:jspj2sdkin
  Java %n,在Menu Item Name 里输入: Java filename,选中Output To List Box和Capture Output ,运行结果显示在输出窗口里。配置带参数运行的解释器Java:在Command Line里输入:d:JSPj2sdkinJava %n%modify%,在Menu Item Name 里输入:Java filename parameter,这样当执行这个菜单项的时候,会显示一个要求输入参数的对话框。UltraEdit的运行及配置示例见图1。
  二 Editplus
  EditPlus是共享软件,它的官方网址是:www.editplus.com。最新版本是EditPlus 2.12。EditPlus也是功能很全面的文本、HTML、程序源代码编辑器。默认的支持HTML、CSS、PHP、ASP、Perl、C/C 、Java、JavaScript和VBScript的语法着色。通过定制语法文件还可以扩展到其他程序语言。可以在Tools菜单的Configure User Tools菜单项配置用户工具,类似于UltraEdit的配置,配置好Java的编译器Javac和解释器Java后,通过EditPlus的菜单可以直接编译执行Java程序。配置及运行示例如图2所示。
  三 Jcreator
  Jcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。官方网址是:www.jcreator.com 。当前最新版本是Jcreator 3.10,它又分为LE和Pro版本。LE版本功能上受到一些限制,是免费版本。Pro版本功能最全,但这个版本是一个共享软件。这个软件比较小巧,对硬件要求不是很高,完全用C 写的,速度快、效率高。具有语法着色、代码自动完成、代码参数提示、工程向导、类向导等功能。第一次启动时提示设置Java JDK主目录及JDK JavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDK Help。但目前这个版本对中文支持性不好。图3所示是这个软件的应用示例。
  四 Eclipse
  Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。它的官方网址是:www.eclipse.org 。它的官方网站提供Releases、Stable Builds、Integration Builds和Nightly Builds下载。建议使用Releases或Stable Builds版本。
  Releases版本是Eclipse开发团队发布的主要发行版本,是经过测试的稳定的版本,适合要求稳定而不需要最新改进功能的使用者选择。目前最新的Release版本是Eclipse 3.0。Stable Builds版本是对大多数使用者足够稳定的版本,由开发团队将认为比较稳定的Integration Build版本提升到Stable Build而来,适合想使用Eclipse新功能的使用者选择。对于Releases版本2.1.x,在Eclipse的官方网站上有一个语言包可以下载,这样Eclipse及其帮助都是简体中文的。用于Java开发,Eclipse与UltraEdit和Editplus两种编辑器和Jcreator IDE比较,Eclipse更专业,功能更强大</pre></p>
</div>
<div id="articlebody">
Java的应用越来越广泛,学习Java的人也越来越多。学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic、Visual Basic等开发工具;使用C语言进行程序设计,可以使用Turbo C、Visual C++、C++ Builder等开发工具。这些开发工具集成了编辑器和编译器,是集成开发工具,很方便使用。学习Java程序设计,同样需要方便易用的开发工具。Java的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑。本文对初学者常使用的Java开发工具作一介绍,有助于初学者了解Java常用开发工具并做出选择。
  要建立Java开发环境,离不开Sun的JAVA2 SDK。1998年12月Sun公司发布了Java Software Development Kit(简称JAVA2 SDK),目前的最新版本是J2sdk-1.4.2.05。可在http://Java.sun.com下载。根据运行平台的不同,下载相应的版本并设置好PATH和CLASSPATH。这个软件包提供了Java编译器、Java解释器,但没有提供Java编辑器,因此需要使用者自己选择一个方便易用的编辑器或集成开发工具。下面就介绍几种适合初学者适用的Java开发工具。
  一 UltraEdit
  UltraEdit是共享软件,它的官方网址是:www.ultraedit.com 。最新版本是V10.20b。它是一个功能强大的文本、HTML、程序源代码编辑器。作为源代码编辑器,它的默认配置可以对C/C , VB, HTML, Java和 Perl进行语法着色。用它设计Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计。它具有完备的复制、粘贴、剪切、查找、替换、格式控制等编辑功能。可以在Advanced菜单的Tool Configuration 菜单项配置好Java的编译器Javac和解释器Java,直接编译运行Java程序。
  配置Javac:在Command Line里输入:D:JSPj2sdkinJavac %f,这里Javac的路径要根据JDK的实际安装路径来指定,%f是指当前活动文档的全文件名。在Menu Item Name 里输入Javac ,它显示在Advanced菜单里,这样就可以直接执行它进行编译了。选中Output To List Box和Capture Output ,这样就可以在源代码下面的输出窗口里看到编译时的错误信息了。配置不带参数运行的解释器Java:在Command Line里输入:D:jspj2sdkin
  Java %n,在Menu Item Name 里输入: Java filename,选中Output To List Box和Capture Output ,运行结果显示在输出窗口里。配置带参数运行的解释器Java:在Command Line里输入:d:JSPj2sdkinJava %n%modify%,在Menu Item Name 里输入:Java filename parameter,这样当执行这个菜单项的时候,会显示一个要求输入参数的对话框。UltraEdit的运行及配置示例见图1。
  二 Editplus
  EditPlus是共享软件,它的官方网址是:www.editplus.com。最新版本是EditPlus 2.12。EditPlus也是功能很全面的文本、HTML、程序源代码编辑器。默认的支持HTML、CSS、PHP、ASP、Perl、C/C 、Java、JavaScript和VBScript的语法着色。通过定制语法文件还可以扩展到其他程序语言。可以在Tools菜单的Configure User Tools菜单项配置用户工具,类似于UltraEdit的配置,配置好Java的编译器Javac和解释器Java后,通过EditPlus的菜单可以直接编译执行Java程序。配置及运行示例如图2所示。
  三 Jcreator
  Jcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。官方网址是:www.jcreator.com 。当前最新版本是Jcreator 3.10,它又分为LE和Pro版本。LE版本功能上受到一些限制,是免费版本。Pro版本功能最全,但这个版本是一个共享软件。这个软件比较小巧,对硬件要求不是很高,完全用C 写的,速度快、效率高。具有语法着色、代码自动完成、代码参数提示、工程向导、类向导等功能。第一次启动时提示设置Java JDK主目录及JDK JavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDK Help。但目前这个版本对中文支持性不好。图3所示是这个软件的应用示例。
  四 Eclipse
  Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。它的官方网址是:www.eclipse.org 。它的官方网站提供Releases、Stable Builds、Integration Builds和Nightly Builds下载。建议使用Releases或Stable Builds版本。
  Releases版本是Eclipse开发团队发布的主要发行版本,是经过测试的稳定的版本,适合要求稳定而不需要最新改进功能的使用者选择。目前最新的Release版本是Eclipse 3.0。Stable Builds版本是对大多数使用者足够稳定的版本,由开发团队将认为比较稳定的Integration Build版本提升到Stable Build而来,适合想使用Eclipse新功能的使用者选择。对于Releases版本2.1.x,在Eclipse的官方网站上有一个语言包可以下载,这样Eclipse及其帮助都是简体中文的。用于Java开发,Eclipse与UltraEdit和Editplus两种编辑器和Jcreator IDE比较,Eclipse更专业,功能更强大

TOP

开发JAVA第一步,教你选好JSP虚拟空间

JavaServer PagesTM (JSP)技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。

   而JSP具有以下优点:
   1. 能够在任何Web或应用程序服务器上运行,对于用户界面的更新,其实就是由 Web Server进行的,所以给人的感觉更新很快;
  2.将应用程序逻辑和页面显示分离,所有的应用都是基于服务器的,所以它们可以时刻保持最新版本;
  3.客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改;
  最重要的是基于java技术,实现了跨平台应用。
   作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。
  “ 许多人做java的web开发还是在windows操作系统下,而要做开发的第一步,就是配置开发环境。Java的开发环境,基本的就是java虚拟机和web服务器。当然,数据库服务器环境也是比较重要的一个环节,但是由于开发时所用的数据库有很多,比如Oracle,MySQL,SQLServer,Access等等,而且对于web开发者来说,只要数据库的服务存在,提供了数据库链接的基本信息(url,username,password,driverClass),利用JDK或者第三方提供的JDBC驱动类的包,很容易链接到数据库。因此现在所说的java web开发环境,主要针对java虚拟机和web服务器来说。”专业的JSP虚拟主机服务商美橙互联如是介绍。
   至于如何选择JSP虚拟主机? 美橙互联www.*****.com为渴望学习,喜欢开发JAVA的程序员作了以下基础性的选择介绍:
   1.根据已有的系统的开发环境来配置Tomcat实例的参数。
    在开发过程中,许多开发者喜欢用的web服务器是tomcat,目前很多公司的jsp虚拟主机是共享tomcat进程,如果一个网站出现问题影响到tomcat,就会造成所有的jsp网站都不能访问,这个在调测jsp网站时常出现; 而美橙互联的jsp空间有自己的特点,以 Linux 系统为基础,提供稳定的系统平台,拥有独立的 Tomcat进程 ,提供 Tomcat 自带的应用程序管理器 (Application Manager) 和服务管理器 (Service Administrator) ,方便客户进行 Tomcat 服务的定制和管理,这样每个网站之间基本上没有互相影响;

  2.根据站点支持的数据库进行选择;
   而美橙互联所提供的数据库有:mysql 4.1 ;MYSQL  4.1和5.0;MS SQL SERVER 2000和2005;

  3.根据站点的具体应用进行选择;
  例如:是否需要安装论坛、预计在线人数、预计可能占用的空间大小等等;

  4.其他因素
  诸如:主机的管理功能、服务器的稳定与安全、服务商的信誉和售后服务等等;这点可以参考一些虚拟主机选择技巧。

TOP