社区
Java SE
帖子详情
有没有用java实现的命令行系统
Mybeautiful
2008-09-05 09:29:26
就是类似cmd那样的黑框. 希望是纯java实现的.
如果已经有开源的,请告诉小弟下啊.
...全文
157
6
打赏
收藏
有没有用java实现的命令行系统
就是类似cmd那样的黑框. 希望是纯java实现的. 如果已经有开源的,请告诉小弟下啊.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SuperBoo
2008-09-05
打赏
举报
回复
java.io.File 就能满足你 不明白的去看api
Mybeautiful
2008-09-05
打赏
举报
回复
谢谢楼上各位,其实我只需要文件操作的部分就可以了. 可以用File类,但是如果有包装好的开源的东西就好了..
比如:cd, dir, copy,del,rm,md 等等.
火龙果被占用了
2008-09-05
打赏
举报
回复
命令行系统或者称为操作系统控制台,这是操作系统提供用于在命令行模式下管理操作系统的工具,
是与操作系统和计算机底层直接打交道的,要用纯 Java 实现的话,几乎是不可能!
SuperBoo
2008-09-05
打赏
举报
回复
用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");
这样写是不可能对的~
wangydong
2008-09-05
打赏
举报
回复
不知道
cuilupeng999
2008-09-05
打赏
举报
回复
关注,帮顶
基于
命令行
的文件管理器——
Java
实现
实现
了基本的文件操作,如创建、删除、拷贝、深拷贝、加密解密、压缩及解压等功能;将code和.exe文件分开,code文件夹包括了源代码及对应的说明,exe文件夹中打包了jre和.exe文件,
实现
了基于
命令行
的文件管理器
JAVA
基于
命令行
的学生成绩管理
系统
实现
Excel存储、导入
2、使用集合框架,
实现
学生成绩的插入、通过名字查询、显示各科成绩排名列表、显示各科成绩通过学生学号的排名列表。 3、将内存中的集合框架对象进行持久化,下一次运行
系统
时可直接调用。把对象的数据存储到文本...
Java
Agent基础篇
课程的稀缺性 在此之前,市面上并没有针对
Java
Agent进行
系统
介绍的课程。 通过搜索引擎查找,会发现与
Java
Agent相关的内容大多是个人知识总结分享的内容。 这些内容有如下特点: 内容质量不一 详略程度...
基于
命令行
的学生成绩管理
系统
.doc
满分
JAVA
实验报告--基于
命令行
的学生成绩管理
系统
。 包括设计思想、程序的结构、功能关系图、类的说明和类之间的关系图、程序主要执行流程图。 核心源代码的解释(十分详细),结果图以及异常处理,实验心得等。
Java
简单
实现
调用
命令行
并获取执行结果示例
主要介绍了
Java
简单
实现
调用
命令行
并获取执行结果,结合实例形式分析了
Java
调用ping命令并获取执行结果相关操作技巧,需要的朋友可以参考下
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章