Socket应用及系统操作webUpdate项目中提取技术点更新.docx

上传人:b****0 文档编号:9819405 上传时间:2023-05-21 格式:DOCX 页数:19 大小:20.34KB
下载 相关 举报
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第1页
第1页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第2页
第2页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第3页
第3页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第4页
第4页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第5页
第5页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第6页
第6页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第7页
第7页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第8页
第8页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第9页
第9页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第10页
第10页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第11页
第11页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第12页
第12页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第13页
第13页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第14页
第14页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第15页
第15页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第16页
第16页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第17页
第17页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第18页
第18页 / 共19页
Socket应用及系统操作webUpdate项目中提取技术点更新.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Socket应用及系统操作webUpdate项目中提取技术点更新.docx

《Socket应用及系统操作webUpdate项目中提取技术点更新.docx》由会员分享,可在线阅读,更多相关《Socket应用及系统操作webUpdate项目中提取技术点更新.docx(19页珍藏版)》请在冰点文库上搜索。

Socket应用及系统操作webUpdate项目中提取技术点更新.docx

Socket应用及系统操作webUpdate项目中提取技术点更新

目录

一、卸载2

二、配置文件读写2

三、Socket传输部分6

四、Web项目加载监听器7

五、读取本机MAC地址8

六、安装包部分9

七、Linux下的shell脚本11

八、国际化的实现12

 

一、卸载

1、判断是否存在文件,不存在执行mdC:

\Backup(创建文件夹)

ifnotexistC:

\BackupmdC:

\Backup

2、复制文件到11.txt到22目录下

xcopyC:

\Backup\11.txtD:

\22

3、关闭tomcat

netstarttomcat

4、开启tomcat

netstarttomcat

5、如果tomcat开启则调用start11.txt这个语句

tasklist|findstr/i"tomcat*"&&start11.txt

6、删除文件safety.xml

delC:

\WINDOWS\system32\safety.xml

二、配置文件读写

java读写xml操作

略。

三、Socket传输部分

1、客户端发送平台信息

publicvoidsendOS(StringosMessage)throwsIOException{

out=newDataOutputStream(

newBufferedOutputStream(socket.getOutputStream()));

out.writeUTF(osMessage);

out.flush();

}

out为建立的输出流,最外层是DataOutputStream,包装BufferedOutputStream,最内层为Socket输出流

out.writeUTF(osMessage)将信息写到输出流

out.flush()强制将流内的数据写出。

2、服务端接收平台信息

publicStringgetOS(){

dis=newDataInputStream(newBufferedInputStream(s

.getInputStream()));

osMessage+=dis.readUTF();

//打印出客户端平台信息:

System.out.println("客户端平台信息:

"+osMessage);

returnosMessage;

}

dis为建立的输入流,最外层是DataInputStream,包装BufferedInputStream,最内层为Socket输入流

osMessage+=dis.readUTF(),从流中按字节读取数据,存到字符串osMessage中

返回字符串osMessage

四、Web项目加载监听器

1、监听类

Web.xml文件

SayHello

classSayHelloextendsHttpServletimplementsServletContectListener

{

//服务器启动时执行该事件

publicvoidcontextInitialized(ServletContextEventsce)

{

publicvoidsayHello()

{

System.out.println(“Hello”);

}

}

//服务器结束执行

publicvoidcontextDestroyed(ServletContextEventarg0){

//TODOAuto-generatedmethodstub

}

}

2、监听器用于判断是否是合法用户并关闭Tomcat,Exception关闭Tomcat服务器异常后,1分钟重新执行此方法

publicvoidcontextInitialized(ServletContextEventsce){

AutoUpdateLockaul=newAutoUpdateLock();

booleanb=aul.checkMac();//调用checkMac方法获取比较mac地址的值是否相等

if(!

b)

{

System.out.println("进入关闭计时器");

Timert=newTimer();

t.schedule(newTimerTask(){

publicvoidrun(){

try{

System.out.println("关闭操作开始");

Sockets=newSocket("localhost",8005);

OutputStreamWriterout=newOutputStreamWriter(s.getOutputStream());

out.write("SHUTDOWN");

out.flush();

out.close();

s.close();

}catch(UnknownHostExceptione){

System.out.println("Lock-服务器关闭端口异常");

e.printStackTrace();

return;

}catch(IOExceptione){

System.out.println("Lock-向服务器端口发送关闭信息IO异常");

e.printStackTrace();

}

catch(Exceptione){

System.out.println("Lock-关闭异常");

e.printStackTrace();

}

}

},60*1000,10*60*1000);

}

}

五、读取本机MAC地址

1、获取当前操作系统名称.

publicclassAutoUpdateGetMacAddress{

publicstaticStringgetOSName(){

returnSystem.getProperty("os.name").toLowerCase();

}

/**

2、获取Unix网卡的mac地址.

publicstaticStringgetUnixMACAddress(){

Stringmac=null;

BufferedReaderbufferedReader=null;

Processprocess=null;

try{

/**

*Unix下的命令,一般取eth0作为本地主网卡显示信息中包含有mac地址信息

*/

process=Runtime.getRuntime().exec("ifconfigeth0");

bufferedReader=newBufferedReader(newInputStreamReader(process

.getInputStream()));

Stringline=null;

intindex=-1;

while((line=bufferedReader.readLine())!

=null){

/**

*寻找标示字符串[hwaddr]

*/

index=line.toLowerCase().indexOf("hwaddr");

/**

*找到了

*/

if(index!

=-1){

/**

*取出mac地址并去除2边空格

*/

mac=line.substring(index+"hwaddr".length()+1).trim();

break;

}

}

}catch(IOExceptione){

e.printStackTrace();

}finally{

try{

if(bufferedReader!

=null){

bufferedReader.close();

}

}catch(IOExceptione1){

e1.printStackTrace();

}

bufferedReader=null;

process=null;

}

returnmac;

}

3、获取Linux网卡的mac地址.

publicstaticStringgetLinuxMACAddress(){

Stringmac=null;

BufferedReaderbufferedReader=null;

Processprocess=null;

try{

/**

*linux下的命令,一般取eth0作为本地主网卡显示信息中包含有mac地址信息

*/

process=Runtime.getRuntime().exec("ifconfigeth0");

bufferedReader=newBufferedReader(newInputStreamReader(process

.getInputStream()));

Stringline=null;

intindex=-1;

while((line=bufferedReader.readLine())!

=null){

index=line.toLowerCase().indexOf("硬件地址");

/**

*找到了

*/

if(index!

=-1){

/**

*取出mac地址并去除2边空格

*/

mac=line.substring(index+4).trim();

break;

}

}

}catch(IOExceptione){

e.printStackTrace();

}finally{

try{

if(bufferedReader!

=null){

bufferedReader.close();

}

}catch(IOExceptione1){

e1.printStackTrace();

}

bufferedReader=null;

process=null;

}

returnmac;

}

4、获取widnows网卡的mac地址.

publicstaticStringgetWindowsMACAddress(){

Stringmac=null;

BufferedReaderbufferedReader=null;

Processprocess=null;

try{

/**

*windows下的命令,显示信息中包含有mac地址信息

*/

process=Runtime.getRuntime().exec("ipconfig/all");

bufferedReader=newBufferedReader(newInputStreamReader(process

.getInputStream()));

Stringline=null;

intindex=-1;

while((line=bufferedReader.readLine())!

=null){

/**

*寻找标示字符串[physicaladdress]

*/

index=line.toLowerCase().indexOf("physicaladdress");

if(index!

=-1){

index=line.indexOf(":

");

if(index!

=-1){

/**

*取出mac地址并去除2边空格

*/

mac=line.substring(index+1).trim();

}

break;

}

}

}catch(IOExceptione){

e.printStackTrace();

}finally{

try{

if(bufferedReader!

=null){

bufferedReader.close();

}

}catch(IOExceptione1){

e1.printStackTrace();

}

bufferedReader=null;

process=null;

}

returnmac;

}

六、安装包部分

1、判断用户权限(以下为脚本代码)

@echooff

setlocalenabledelayedexpansion

:

Main

cls

set/anum2=1024*1024

for%%iin(c)do(

ifexist%%i:

\(

setnum3_str=

setnum4=

for/f"tokens=3"%%jin('dir/-c%%i:

\')dosetnum1=%%j

ifnot"!

num1!

"=="0"(

call:

loop

for/f"delims=0tokens=*"%%kin("!

num3_str!

")dosetnum3_str=%%k

echo!

num3_str!

:

loop

:

:

求商

set/anum3=%num4%%num1:

~0,1%/%num2%

:

:

求商序列

setnum3_str=%num3_str%%num3%

:

:

求余

set/anum4=%num4%%num1:

~0,1%%%%num2%

if%num4%equ0setnum4=

setnum1=%num1:

~1%

ifnot"%num1%"==""gotoloop

goto:

eof

2、判断安全文件是否存在

publicbooleanjudgeConfigFile()

{

Filefile=newFile("/etc/safety.xml");

returnfile.exists();

}

3执行bat文件进行判断系统用户

publicbooleanbatjudge()

{

Stringstrline="";

ExecuteInstallei=newExecuteInstall();

Processp=ei.execBat("调用bat路径");

InputStreamin=p.getInputStream();

BufferedReaderbr=newBufferedReader(newInputStreamReader(in));

try{

strline=br.readLine();//读取的返回值是1为管理员用户,是2为普通用户

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

returnfalse;

}

if(strline.equals("1"))

returntrue;

if(strline.equals("2"))

returnfalse;

returnfalse;

}

4.检测某文件夹下的所有信息及文件夹大小

//计算总大小的属性

publicstaticdoublesum=0;

//存储文件位置的属性

publicstaticMapfile_map=newHashMap();

//存储文件大小的属性

publicstaticMapfile_size=newHashMap();

//存储文件信息时的标识符属性

staticintkey=0;

/**

*获取目标文件夹的大小,结果保存在属性sum(递归)

*/

publicbooleangetFileUrlSize(Filefile)

{

Filef=file;

String[]str={};

if(f.isDirectory())//判断此文件是否是一个文件夹

str=f.list();

else

{

file_map.put(key,file.getCanonicalPath());//记录每一个检查过的文件的路径

file_size.put(key,String.valueOf(file.length()));//记录每一个检查过的文件的大小

key++;

sum+=file.length();//将文件的大小添加到和中sum

returnfalse;

}

for(inti=0;i

{

file=newFile(f.getAbsolutePath()+"\\"+str[i]);

if(!

newMyFileAndBatUse().getFileUrlSize(file))

continue;

}

returntrue;

}

5、Java代码判断一个文件是否存在;

publicbooleanjudgeConfigFile()

{

Filefile=newFile("/etc/safety.xml");

returnfile.exists();

}

6、进度条

/**

*创造一个进度条对话框

*

*@paramprogress_number

*:

目标文件的总大小

*/

略。

七、Linux下的shell脚本

1.Shell脚本使用时

创建文件夹的sh文件,直接调用时,生成的文件夹会自动在文件夹后面,生成类似空格不可看见的东西。

导致别的可执行文件找不到你创建的文件

解决方法:

右键此XXX.sh文件选择权限,把允许以程序执行文件的选项勾掉,当java代码调用shell脚本时。

就会创建你想要的文件夹了。

2.判断是否为系统用户

name=`whoami`

if[$name=root]

then

printf"您是系统用户$name可以使用\n"

else

printf"您不是系统用户$name"

fi

3、判断磁盘空间

df-hl/|grep/|awk'{print$4}'

此代码自动返回磁盘剩余大小。

LINUX:

4、判断是否存在文件,不存在则执行echo2(输出字符2)

if[-x/usr/local/apache-tomcat-5.5.12/webapps/DL_webService_1];then

echo1

else

echo2

fi

5、复制文件到11.txt到22目录下

cpC:

\Backup\11.txtD:

\22

6、关闭tomcat

sh/usr/local/apache-tomcat-5.5.12/bin/shutdown.sh

7、开启tomcat

sh/usr/local/apache-tomcat-5.5.12/bin/startup.sh

8、如果tomcat开启则调用start11.txt这个语句

tasklist|findstr/i"tomcat*"&&start11.txt

9、删除文件safety.xml

rm-rfC:

\WINDOWS\system32\safety.xml

八、国际化的实现

1.判断系统语言,并根据系统语言选择读取Properties文件。

//国际化似有方法判断系统语言。

privateStringlanguage(){

Strings=System.getProperty("user.language");

Stringss=null;

if(s.equals("zh")){

ss="Chinese";

}else{

ss="English";

}

returnss;

}

//根据判断的语言判断并读取Properties文件。

ResourceBundle.getBundle("Global-EN");

//汉语读取出来之后是unicode码这里转码为汉字。

privateStringcodeformat(Stringss){

Charsetcs=Charset.forName("GBK");

CharsetDecodercd=cs.newDecoder();

CharBuffercb=null;

try{

cb=cd.decode(ByteBuffer.wrap(ss.getBytes()));

}catch(CharacterCodingExceptione){

e.printStackTrace();

}

returncb.toString();

}

2、异常处理

//使用自定义异常对Properties文件存在进行异常处理。

publicclassGlobalExceptionextendsException{

publicFrameWorkfw;

publicStringgetMessage(){

fw=newFrameWork("国际化错误",null,500,300,260,200,false,true);

fw.setFrameLabel("国际化文件缺失或移动,请重新安装

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2