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();
}
}
}