Socket应用及系统操作----webUpdate项目中提取技术点更新.doc_第1页
Socket应用及系统操作----webUpdate项目中提取技术点更新.doc_第2页
Socket应用及系统操作----webUpdate项目中提取技术点更新.doc_第3页
Socket应用及系统操作----webUpdate项目中提取技术点更新.doc_第4页
Socket应用及系统操作----webUpdate项目中提取技术点更新.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DL_webUpdate技术点总结目录一、卸载2二、配置文件读写2三、Socket传输部分6四、Web项目加载监听器7五、读取本机MAC地址8六、安装包部分9七、Linux下的shell脚本11八、国际化的实现12一、卸载1、判断是否存在文件,不存在执行md C:Backup(创建文件夹)if not exist C:Backup md C:Backup2、复制文件到11.txt到22目录下xcopy C:Backup11.txt D:223、关闭tomcatnet start tomcat4、开启tomcatnet start tomcat5、如果tomcat开启 则调用 start 11.txt这个语句tasklist|findstr /i tomcat* & start 11.txt6、删除文件safety.xmldel C:WINDOWSsystem32safety.xml二、配置文件读写java读写xml操作 略。三、Socket传输部分1、客户端发送平台信息public void sendOS(String osMessage) throws IOException out = newDataOutputStream(new BufferedOutputStream(socket.getOutputStream();out.writeUTF(osMessage);out.flush();out为建立的输出流,最外层是DataOutputStream,包装BufferedOutputStream,最内层为Socket输出流out.writeUTF(osMessage)将信息写到输出流out.flush()强制将流内的数据写出。2、服务端接收平台信息public String getOS() dis = new DataInputStream(new BufferedInputStream(s.getInputStream();osMessage += dis.readUTF();/ 打印出客户端平台信息:System.out.println(客户端平台信息: + osMessage);return osMessage;dis为建立的输入流,最外层是DataInputStream,包装BufferedInputStream,最内层为Socket输入流osMessage += dis.readUTF(),从流中按字节读取数据,存到字符串osMessage中返回字符串osMessage四、Web项目加载监听器1、监听类Web.xml 文件 SayHelloclass SayHello extends HttpServlet implements ServletContectListener/ 服务器启动时执行该事件public void contextInitialized(ServletContextEvent sce) public void sayHello()System.out.println(“Hello”);/ 服务器结束执行public void contextDestroyed(ServletContextEvent arg0) / TODO Auto-generated method stub2、监听器用于判断是否是合法用户并关闭Tomcat,Exception 关闭Tomcat服务器异常后,1分钟重新执行此方法public void contextInitialized(ServletContextEvent sce) AutoUpdateLock aul = new AutoUpdateLock();boolean b = aul.checkMac();/调用checkMac方法获取比较mac地址的值是否相等if(!b)System.out.println(进入关闭计时器);Timer t = new Timer();t.schedule(new TimerTask() public void run() try System.out.println(关闭操作开始);Socket s = new Socket( localhost,8005); OutputStreamWriter out = new OutputStreamWriter(s.getOutputStream(); out.write( SHUTDOWN); out.flush(); out.close(); s.close(); catch (UnknownHostException e) System.out.println(Lock-服务器关闭端口异常);e.printStackTrace(); return; catch (IOException e) System.out.println(Lock-向服务器端口发送关闭信息IO异常);e.printStackTrace(); catch (Exception e) System.out.println(Lock-关闭异常);e.printStackTrace();, 60*1000,10*60*1000);五、读取本机MAC地址1、获取当前操作系统名称. public class AutoUpdateGetMacAddress public static String getOSName() return System.getProperty().toLowerCase(); /* 2、获取Unix网卡的mac地址. public static String getUnixMACAddress() String mac = null; BufferedReader bufferedReader = null; Process process = null; try /* * Unix下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息 */ process = Runtime.getRuntime().exec(ifconfig eth0); bufferedReader = new BufferedReader(new InputStreamReader(process .getInputStream(); String line = null; int index = -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 (IOException e) e.printStackTrace(); finally try if (bufferedReader != null) bufferedReader.close(); catch (IOException e1) e1.printStackTrace(); bufferedReader = null; process = null; return mac; 3、 获取Linux网卡的mac地址. public static String getLinuxMACAddress() String mac = null; BufferedReader bufferedReader = null; Process process = null; try /* * linux下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息 */ process = Runtime.getRuntime().exec(ifconfig eth0); bufferedReader = new BufferedReader(new InputStreamReader(process .getInputStream(); String line = null; int index = -1; while (line = bufferedReader.readLine() != null) index = line.toLowerCase().indexOf(硬件地址); /* * 找到了 */ if (index != -1) /* * 取出mac地址并去除2边空格 */ mac = line.substring(index+4).trim(); break; catch (IOException e) e.printStackTrace(); finally try if (bufferedReader != null) bufferedReader.close(); catch (IOException e1) e1.printStackTrace(); bufferedReader = null; process = null; return mac; 4、获取widnows网卡的mac地址. public static String getWindowsMACAddress() String mac = null; BufferedReader bufferedReader = null; Process process = null; try /* * windows下的命令,显示信息中包含有mac地址信息 */ process = Runtime.getRuntime().exec(ipconfig /all); bufferedReader = new BufferedReader(new InputStreamReader(process .getInputStream(); String line = null; int index = -1; while (line = bufferedReader.readLine() != null) /* * 寻找标示字符串physical address */ index = line.toLowerCase().indexOf(physical address); if (index != -1) index = line.indexOf(:); if (index != -1) /* * 取出mac地址并去除2边空格 */ mac = line.substring(index + 1).trim(); break; catch (IOException e) e.printStackTrace(); finally try if (bufferedReader != null) bufferedReader.close(); catch (IOException e1) e1.printStackTrace(); bufferedReader = null; process = null; return mac; 六、安装包部分1、判断用户权限(以下为脚本代码)echo offsetlocal enabledelayedexpansion:Mainclsset /a num2=1024*1024for %i in (c) do ( if exist %i: ( set num3_str= set num4= for /f tokens=3 %j in (dir /-c %i:) do set num1=%j if not !num1!=0 ( call :loop for /f delims=0 tokens=* %k in (!num3_str!) do set num3_str=%k echo !num3_str! ) ) ):loop: 求商set /a num3=%num4%num1:0,1%/%num2%: 求商序列set num3_str=%num3_str%num3%: 求余set /a num4=%num4%num1:0,1%num2%if %num4% equ 0 set num4=set num1=%num1:1%if not %num1%= goto loopgoto :eof2、判断安全文件是否存在public boolean judgeConfigFile()File file = new File(/etc/safety.xml);return file.exists();3 执行bat文件进行判断系统用户 public boolean batjudge() String strline = ; ExecuteInstall ei = new ExecuteInstall(); Process p = ei.execBat(调用bat路径);InputStream in = p.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(in);try strline = br.readLine();/读取的返回值是1为 管理员用户,是2为 普通用户 catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();return false;if(strline.equals(1)return true;if(strline.equals(2)return false;return false; 4.检测某文件夹下的所有信息及文件夹大小 /计算总大小的属性 public static double sum = 0; /存储文件位置的属性 public static Map file_map = new HashMap(); /存储文件大小的属性 public static Map file_size = new HashMap(); /存储文件信息时的标识符属性 static int key = 0; /* * 获取目标文件夹的大小,结果保存在属性sum(递归) */public boolean getFileUrlSize(File file)File f = file;String str = ;if(f.isDirectory()/判断此文件是否是一个文件夹str = f.list();elsefile_map.put(key,file.getCanonicalPath();/记录每一个检查过的文件的路径file_size.put(key, String.valueOf(file.length();/记录每一个检查过的文件的大小key+;sum += file.length();/将文件的大小添加到和中sumreturn false;for(int i = 0; i str.length ; i+)/循环遍历文件夹下的每一个文件或文件夹file = new File(f.getAbsolutePath()+stri);if(!new MyFileAndBatUse().getFileUrlSize(file)continue;return true;5、Java代码判断一个文件是否存在;public boolean judgeConfigFile()File file = new File(/etc/safety.xml);return file.exists();6、进度条 /* * 创造一个进度条对话框 * * param progress_number * : 目标文件的总大小 */略。七、Linux下的shell脚本1.Shell脚本 使用时创建文件夹的sh文件,直接调用时,生成的文件夹会自动在文件夹后面,生成类似空格不可看见的东西。导致别的可执行文件找不到你创建的文件解决方法:右键此XXX.sh文件 选择 权限 ,把允许以程序执行文件 的选项 勾掉 ,当java代码调用shell脚本时。就会创建你想要的文件夹了。2.判断是否为系统用户name=whoamiif $name = root then printf您是系统用户 $name 可以使用nelse printf您不是系统用户 $namefi3、判断磁盘空间df -hl / |grep / | awk print $4此代码自动返回磁盘剩余大小。LINUX:4、判断是否存在文件,不存在则执行echo 2(输出字符2)if -x /usr/local/apache-tomcat-5.5.12/webapps/DL_webService_1 ;thenecho 1elseecho 2fi5、复制文件到11.txt到22目录下cp C:Backup11.txt D:226、关闭tomcatsh /usr/local/apache-tomcat-5.5.12/bin/shutdown.sh7、开启tomcatsh /usr/local/apache-tomcat-5.5.12/bin/startup.sh8、如果tomcat开启 则调用 start 11.txt这个语句tasklist|findstr /i tomcat* & start 11.txt9、删除文件safety.xmlrm -rf C:WINDOWSsystem32safety.xml八、国际化的实现1.判断系统语言,并根据系统语言选择读取Properties文件。/国际化似有方法判断系统语言。private String language()String s=System.getProperty(user.language);String ss=null;if(s.equals(zh)ss=Chinese;elsess=English;return ss;/根据判断的语言判断并读取Properties文件。ResourceBundle.getBundle(Global-EN);/汉语读取出来之后是unicode码这里转码为汉字。private String codeformat(String ss)Charset cs = Charset.forName( GBK); CharsetDecoder cd = cs.newDecoder(); CharBuffer cb = null; try cb = cd.d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论