09月 05 2008

JAVA如何调用WINDOWS命令行

Tagged Under :

用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式:

Process process = Runtime.getRuntime().exec(”.\\p.exe”);
process.waitfor( );

在上面的程序中,第一行的“.\\p.exe”是要执行的程序名,Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。第二条语句的目的等待子进程完成再往下执行。
但在windows平台上,如果处理不当,有时并不能得到预期的结果。下面是笔者在实际编程中总结的几种需要注意的情况:
1、执行DOS的内部命令
如果要执行一条DOS内部命令,有两种方法。一种方法是把命令解释器包含在exec()的参数中。例如,执行dir命令,在NT上, 可写成exec(”cmd.exe /c dir”),在windows 95/98下,可写成“command.exe /c dir”,其中参数“/c”表示命令执行后关闭Dos立即关闭窗口。另一种方法是,把内部命令放在一个批命令my_dir.bat文件中,在Java程序中写成exec(”my_dir.bat”)。如果仅仅写成exec(”dir”),Java虚拟机则会报运行时错误。前一种方法要保证程序的可移植性,需要在程序中读取运行的操作系统平台,以调用不同的命令解释器。后一种方法则不需要做更多的处理。
2、打开一个不可执行的文件
打开一个不可执行的文件,但该文件存在关联的应用程序,则可以有两种方式。 以打开一个word文档a.doc文件为例,Java中可以有以下两种写法:
exec(”start .\\a.doc”);
exec(” c:\\Program Files\\Microsoft Office\\office\\winword.exe .\\a.doc”);
显然,前一种方法更为简捷方便。
3、执行一个有标准输出的DOS可执行程序
在windows平台上,运行被调用程序的DOS窗口在程序执行完毕后往往并不会自动关闭,从而导致Java应用程序阻塞在waitfor( )。导致该现象的一个可能的原因是,该可执行程序的标准输出比较多,而运行窗口的标准输出缓冲区不够大。解决的办法是,利用Java提供的Process类提供的方法让Java虚拟机截获被调用程序的DOS运行窗口的标准输出,在waitfor()命令之前读出窗口的标准输出缓冲区中的内容。一段典型的程序如下:

String ls_1;
Process process = Runtime.getRuntime().exec(”cmd /c dir \\windows”);
BufferedReader bufferedReader = new BufferedReader( \
new InputStreamReader(process.getInputStream());
while ( (ls_1=bufferedReader.readLine()) != null)
System.out.println(ls_1);
process.waitfor( );

以上内容为转载~下面内容为原创!
今天在做客户端程序的自动更新,简单描述一下,就是从服务器上将更新包下载下来,然后在本地解压缩,最后删掉~功能很简单~
但是问题出在使用JAVA的ZIP模块做文件的解压缩不是想象的那么简单,资源需要释放,一个不小心就没有办法删除掉原有ZIP文件了~资源的占用确实是个大问题,但是好在,客户端程序更新完是要重启的,一切都烟消云散了~对于删除不掉ZIP文件的问题,我也流氓一下~用DEL硬删除~此处一定要注意!
Process process = Runtime.getRuntime().exec(”cmd /c del f:\\aaa.doc”);
这样的调用是没有问题~
Process process = Runtime.getRuntime().exec(”del f:\\aaa.doc”);
这样写是不可能对的~

09月 05 2008

OLPC XO运行Windows XP过于吃力

Tagged Under :

根据之前的报道微软和OLPC组织在今年5月中旬联合宣布开发适用于XO笔记本环境的Windows系统,而这类产品此前安装的都是Linux,此举曾引起了大批Linux拥趸的反对,部分OLPC组织官员也愤愤辞职。
   
Windows XP过于吃力” src=”http://Linux.chinaitlab.com/UploadFiles_7565/200808/20080807094901288.jpg” width=500 twffan=”done”>
    随后这一计划改为在XO笔记本中安装Windows XP和Linux双系统,并计划从下个月起向发展中国家提供。日前LAPTP Magazine拜访了OLPC总部,并提前体验了安装Windows XP操作系统的XO笔记本。
    由于XO只有1GB闪存硬盘,XP操作系统需要从专用的4GB SanDisk Extreme SD卡启动,操作系统和其他软件占据了1.81GB空间,另外由于内置的1GB闪存硬盘只能够从Linux系统下访问,所以启动Windows XP系统后用户只剩下约1.97GB存储空间可供使用。
    预装的系统为3美元套装Windows XP Starter Edition(SP2)和Office 2003。不过在测试中受硬件能力(256 MB内存,AMD Geode LX-700处理器)所限,非常锻炼使用者的耐心。
    在测试中启动操作系统需要1分24秒,尽管打开IE 6只需要5秒,不过打开PowerPoint需要15秒,而需要内存更多的Word 2003需要长达42秒。另外,如果同时运行不止一个程序,系统经常会表现出异常缓慢,甚至发生失去响应的情况。

 

09月 03 2008

Google Chrome浏览器的隐藏功能和彩蛋

Tagged Under :

新闻来源:翻译自saulis.com
Google浏览器大家已经都用着了,速度和性能都很不错。其实chrome还有一些很酷的功能隐藏在里面,下面列出一些google浏览器的about:页面,在地址栏输入下面的代码会有一些很实用的Chrome功能。
about:version - 显示当前版本 也可以是chrome-resource://about/
about:plugins - 显示已安装插件
about:histograms - 显示历史记录
about:dns - 显示DNS状态
about:cache, 重定向到 view-cache: 显示缓存页面
view-cache:stats - 缓存状态
about:stats - 显示状态
about:network - 很酷的网络工具
about:internets - 这应该算是一个彩蛋
chrome-resource://new-tab/ - 新标签页
chrome-resource://favicon/ - 这个在我的chrome上无法访问。。。
另外报告一个算是bug,用谷歌金山词霸在Chrome中取词试试,是的无法取词

09月 03 2008

有趣 - Google Chrome 崩溃画面截图

Tagged Under :

成功截获 Google Chrome 崩溃画面,截图留念,呵呵,没想到 Google Chrome 这么快就崩溃了。
另外,在 Google Chrome 的地址栏中输入:about:internets 将会出现一个类似 Windows 屏幕保护程序的彩蛋。
 

09月 03 2008

北京朝阳法院正式受理奇虎起诉瑞星及中关村在线一案

昨日,记者从朝阳法院获悉,该院已正式受理奇虎控告瑞星与中关村在线两家公司名誉侵权案.
8月26日,奇虎宣布正式对瑞星和中关村在线提起名誉侵权诉讼,要求北京艺进娱辉投资股份有限公司(瑞星更名后的公司名称)和北京中关村在线数字信息技术有限公司停止侵权、公开致歉,并分别向两公司索赔名誉侵权损失费各200万元.
奇虎在起诉书中称,自今年7月开始,瑞星在其拥有的多个客户端软件平台和旗下网站,及众多国内媒体上发布了一系列恶意诽谤、严重失实的文章,瑞星副总裁毛一丁通过接受采访等形式也发表了类似言词.瑞星甚至不惜以重金在其他软件平台或媒体的显著位置,以购买广告的形式,广泛传播诽谤奇虎360的文章.
奇虎称,作为竞争对手,瑞星在没有任何证据的情况下,持续不断地散布大量攻击奇虎的言论,同时误导用户认为奇虎在欺骗用户、不可信任且不能使用的做法已严重侵犯奇虎的名誉权,并对奇虎造成了不可估量的严重损害和不可挽回的巨大损失.
中关村在线则是因为在网站上发布了一系列针对奇虎的文章,奇虎表示,“这些文章系恶意毁谤、严重失实”.

事件回放
因查杀“流氓软件”而一战成名的奇虎360与瑞星之间的“口水仗”发端于今年7月.双方争议主要有以下两点:

■“免费”之争

7月17日,奇虎宣布推出“永久免费”的杀毒软件,并爆出“像杀毒这样的基础服务早该全免费”的言论,一时间在业内引起轩然大波,同时也遭到了许多人对于该软件是否真正免费的质疑.
■“误杀”之争

7月底,奇虎360被爆拦截瑞星防火墙、删除瑞星防火墙核心文件的“误杀”事件,这种对竞争对手的“误杀”引发了较大争议.

文/《北京商报》