1. java怎么运行dos命令, 主要是运行dos中的"cd"命令
写一个public类,类名就叫cd,运行的时候默认在某一个文件夹位置
在main方法中读取args参数,根据参数判断怎么做就可以了
比如 cd abc,就在当前目录下找有没有abc文件夹
cd..就判断是不是根目录,不是的话退一级
等等 以此类推
2. 怎么在java代码中写入DOS命令
下面是一种比较典型的程序模式:
Process process = Runtime.getRuntime().exec(".\\p.exe");
在上面的程序中,第一行的“.\\p.exe”是要执行的程序名,.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( )。导致该现象的一个可能的原因是,该可执行程序的标准输出比较多,而运行窗口的标准输出缓冲区不够大
3. 怎么在dos下运行java文件
改为haha.java.之后可以把文件放在D盘根目录下.开始--运行--输入cmd.进入dos后,在光标定位处输入d: (回车).D:javac haha.java (回车).D:java haha (回车)
进入F盘的a目录,在dos提示符下输入javac a1.java;如果编译通过,你会在a1目录下看到a1.class这样一个文件。同时会出现dos提示符,再在dos提示符下输入javaa1就可以运行了。
以hello.java为例: 首先,安装jdk并配置环境变量。打开cmd窗口运行java-version检查环境变量是否配置正确。 然后,编译java文件。可以把cmd的路径转换到源文件目录下,也可以直接在命令中加入绝对路径。
比如说保存为"D:java est.java",然后转换目录到那里"cd D:java",编译这个.java文件"javac test.java"这个javac的命令一定要记住,这是jdk里面最为常用的之一,是个java的编译器,具体参数你自己研究吧
4. java调用DOS命令
利用java执行dos命令,可以利用java.lang包下的Runtime和Process类,完成对命令的执行,代码如下:
Example
packagedos;
importjava.io.*;
publicclasstestdos
{
publicstaticvoidmain(String[]args)throwsIOException{
Stringcommand="ipconfig";
Runtimer=Runtime.getRuntime();
Processp=r.exec(command);
//System.out.println(p.getClass().getName());
BufferedReaderbr=newBufferedReader(newInputStreamReader(
p.getInputStream()));
StringBuffersb=newStringBuffer();
Stringinline;
while(null!=(inline=br.readLine())){
sb.append(inline).append(" ");
}
System.out.println(sb.toString());
}
}
5. java调用dos
给你个方法:
/**
*
* @param path
*
要执行的文件路径或命令
* @param type
*
执行类型 1 shell命令 2 .CMD文件 3 .EXE文件
* @return 返回的值
* @throws IOException
*/
public static String execCMD(String path, int type) {
final String COM_TITLE = "CMD /C ";
if (type == 1) {
path = COM_TITLE + path;
}
try {
Process pro = Runtime.getRuntime().exec(path);
BufferedInputStream br = new BufferedInputStream(pro
.getInputStream());
BufferedInputStream br1 = new BufferedInputStream(pro
.getErrorStream());
int ch;
StringBuffer text = new StringBuffer("Info: \n");
while ((ch = br.read()) != -1) {
text.append((char) ch);
}
StringBuffer text1 = new StringBuffer("Error: \n");
while ((ch = br1.read()) != -1) {
text1.append((char) ch);
}
return text.length() > 9 ? text.toString() : text1.toString();
} catch (IOException e) {
return e.getMessage();
}
}
public static void main(String args[]) {
String result = execCMD('c:/link.cmd', 2);
System.out.println(result);
}
如果你不想外置一个文件,那就把类型改为1
6. 如何在dos命令行中运行java程序
工具来/原料
电脑
方法源/步骤
打开开始,运行cmd,进入dos界面。
7. JAVA调用DOS问题
ProcessBuilder pb = new ProcessBuilder("cmd.exe");
Process p = pb.start();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(p
.getOutputStream()));
bw.write(cmd + "\n");
bw.flush();
cmd字符串中传入你所需要的DOS命令即可
8. java代码怎么实现执行dos运行命令
使用Runtime类,他是一个与JVM运行时环境有关的类,这个类是Singleton的。Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法。Runtime.exec()方法就是执行cmd命令的方法。
举例
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.util.ArrayList;
importjava.util.HashMap;
publicclassTest{
publicstaticvoidmain(String[]args){
excuteCommand("ipconfig");
excuteCommand("ping10.141.26.50");
}
publicstaticvoidexcuteCommand(Stringcommand)
{
Runtimer=Runtime.getRuntime();
Processp;
try{
p=r.exec(command);
BufferedReaderbr=newBufferedReader(newInputStreamReader(p
.getInputStream()));
Stringinline;
while((inline=br.readLine())!=null){
System.out.println(inline);
}
br.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}