當前位置:首頁 » 編程語言 » java調用命令行

java調用命令行

發布時間: 2022-05-17 11:48:10

java或C#調用命令行批處理命令如何獲得返回值

[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行] 先看看如上的批處理,其中一個命令是mp,其它的參數我們就不說了。2個點 > 1.sql 這個是默認的輸出,也就是內容輸出 2>Nul 這個是錯誤輸出,也就是如果 mp出現了異常,則不會顯示在屏幕上,而是被丟棄到 nul %errorlevel% 這個是前一個命令執行的返回值,0代表正常 上述邏輯是: 執行一個程序 如果正常,則轉到下一個命令,列印出OK,然後轉到結束 如果異常,則轉到error處理,列印出 ERROR,轉到結束 列印內容是隨意的 我們的java/C#程序可以讀取進程的輸出內容,並判斷是否批處理執行成功來源: blog.csdn 作者:老紫竹

② 如何使用命令行編譯運行java程序

要想編譯和運行java文件,很簡單,只需要兩個命令:
(1)javac:作用:編譯java文件;使用方法: javac Hello.java ,如果不出錯的話,在與Hello.java 同一目錄下會生成一個Hello.class文件,這個class文件是操作系統能夠使用和運行的文件。
(2)java: 作用:運行.class文件;使用方法:java Hello,如果不出錯的話,會執行Hello.class文件。注意:這里的Hello後面不需要擴展名。
下面舉例說明:
假設我有一個Hello.java文件放在D:\javatest 文件夾下。
打開cmd命令窗口,會出現C:\user\lenovo 這里出現的是系統用戶名,這里我們需要將路徑轉移到java文件所在目錄。
緊接著輸入 D:回車,會出現一下界面:
這時候我們需要定位到java文件所在目錄(這里是javatest目錄),接著輸入 cd javatest 回車。
此時進入到D:\javatest目錄中,此時的Hello.java文件就在這里
這時候我們就可以用javac命令編譯啦,輸入javac Hello.java回車
這里如果沒有任何提示表示編譯成功,此時打開d:\javatest文件夾你會發現此時多了一個名為Hello.class的文件,這就是操作系統能夠運行的文件。
接著輸入 java Hello回車,你就會看到文件被運行的結果。
這里有幾個要注意的問題

第一:Hello.java中的內容是一個類,這個類的名字與.java文件名字必須完全一致。如果不一致將出錯。這里當你通過eclipse創建一個類文件的時候你就會理解的更清楚了,這里不贅述。
第二:javac 和 java 命令的使用方法要注意,格式。
第三:要使用這兩命令,必須配置好環境變數。

③ 如何用java啟動windows命令行程序

先請編譯和運行下面程序:

import java.util.*;
import java.io.*;

public class BadExecJavac2
{

public static void main(String args[])

{

try

{

Runtime rt = Runtime.getRuntime();

Process proc = rt.exec("javac");

int exitVal = proc.waitFor();

System.out.println("Process exitValue: " + exitVal);

} catch (Throwable t){

t.printStackTrace();

}

}
}

我們知道javac命令,當不帶參數運行javac
程序時,它將輸出幫助說明,為什麼上面程序不產生任何輸出並掛起,永不完成呢?java文檔上說,由於有些本地平台為標准輸入和輸出流所提供的緩沖區大小
有限,如果不能及時寫入子進程的輸入流或者讀取子進程的輸出流,可能導致子進程阻塞,甚至陷入死鎖。所以,上面的程序應改寫為:

import java.util.*;

import java.io.*;

public class MediocreExecJavac

{

public static void main(String args[])

{

try

{

Runtime rt = Runtime.getRuntime();

Process proc = rt.exec("javac");

InputStream stderr = proc.getErrorStream();

InputStreamReader isr = new InputStreamReader(stderr);

BufferedReader br = new BufferedReader(isr);

String line = null;

System.out.println("");

while ( (line = br.readLine()) != null)

System.out.println(line);

System.out.println("");

int exitVal = proc.waitFor();

System.out.println("Process exitValue: " + exitVal);

} catch (Throwable t){

t.printStackTrace();

}

}

}

下面是正確的輸出:

D:\java>java MediocreExecJavac

Usage: javac <options>

where possible options include:

-g Generate all debugging info

-g:none Generate no debugging info

-g:{lines,vars,source} Generate only some debugging info

-nowarn Generate no warnings

-verbose Output messages about what the compiler is doing

-deprecation Output source locations where deprecated APIs are used

-classpath Specify where to find user class files

-cp Specify where to find user class files

-sourcepath Specify where to find input source files

-bootclasspath Override location of bootstrap class files

-extdirs Override location of installed extensions

-endorseddirs Override location of endorsed standards path

-d Specify where to place generated class files

-encoding Specify character encoding used by source files

-source Provide source compatibility with specified release

-target Generate class files for specific VM version

-version Version information

-help Print a synopsis of standard options

-X Print a synopsis of nonstandard options

-J Pass directly to the runtime system

Process exitValue: 2

D:\java>

下面是一個更一般的程序,它用兩個線程同步清空標准錯誤流和標准輸出流,並能根據你所使用的windows操作系統選擇windows命令解釋器command.com或cmd.exe,然後執行你提供的命令。

import java.util.*;

import java.io.*;

class StreamGobbler extends Thread

{

InputStream is;

String type; //輸出流的類型ERROR或OUTPUT

StreamGobbler(InputStream is, String type)

{

this.is = is;

this.type = type;

}

public void run()

{

try

{

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);

String line=null;

while ( (line = br.readLine()) != null)

{

System.out.println(type + ">" + line);

System.out.flush();

}

} catch (IOException ioe)

{

ioe.printStackTrace();

}

}

}

public class GoodWindowsExec

{

public static void main(String args[])

{

if (args.length < 1)

{

System.out.println("USAGE: java GoodWindowsExec ");

System.exit(1);

}

try

{

String osName = System.getProperty("os.name" );

System.out.println("osName: " + osName);

String[] cmd = new String[3];

if(osName.equals("Windows XP") ||osName.equals("Windows 2000"))

{

cmd[0] = "cmd.exe" ;

cmd[1] = "/C" ;

cmd[2] = args[0];

}

else if( osName.equals( "Windows 98" ) )

{

cmd[0] = "command.com" ;

cmd[1] = "/C" ;

cmd[2] = args[0];

}

Runtime rt = Runtime.getRuntime();

System.out.println("Execing " + cmd[0] + " " + cmd[1]+ " " + cmd[2]);

Process proc = rt.exec(cmd);

// any error message?

StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");

// any output?

StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");

// kick them off

errorGobbler.start();

outputGobbler.start();

// any error???

int exitVal = proc.waitFor();

System.out.println("ExitValue: " + exitVal);

} catch (Throwable t){

t.printStackTrace();

}

}

}

下面是一個測試結果:

D:\java>java GoodWindowsExec " Test.java Test1.java"

osName: Windows XP

Execing cmd.exe /C Test.java Test1.java

OUTPUT>已復制 1 個文件。

ExitValue: 0

D:\java>

下面的測試都能通過(windows xp+jdk1.5)

D:\java>java GoodWindowsExec dir

D:\java>java GoodWindowsExec Test.java

D:\java>java GoodWindowsExec regedit.exe

D:\java>java GoodWindowsExec NOTEPAD.EXE

D:\java>java GoodWindowsExec first.ppt

D:\java>java GoodWindowsExec second.doc

function TempSave(ElementID)

{

CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value);

CommentsPersistDiv.save("CommentXMLStore");

}

function Restore(ElementID)

{

CommentsPersistDiv.load("CommentXMLStore");

document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent");

}

④ 如何用java執行命令行

Java運行命令行並獲取返回值,下面以簡單的Java執行ping命令(ping 127.0.0.1 -t
)為例,代碼如下:

Processp=Runtime.getRuntime().exec("ping127.0.0.1-t");
Processp=Runtime.getRuntime().exec("javac");
InputStreamis=p.getInputStream();
BufferedReaderreader=newBufferedReader(newInputStreamReader(is));
Stringline;
while((line=reader.readLine())!=null){
System.out.println(line);
}
p.waitFor();
is.close();
reader.close();
p.destroy();
}

⑤ java 調用windows 命令行程序遇到有空格的路徑該怎麼解決

比如: java Test a b Test程序會收到兩個參數"a"和"b",如果想要讓它收到"a b",命令行可以改成 java Test "a b" 如果你不能編輯java運行的命令行,又很肯定你的程序只應該接收1個參數

⑥ java調用CMD命令

String command = 「cmd命令」

Process pro = Runtime.getRuntime().exec(command);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(pro.getInputStream()));

⑦ java程序里調用linux命令

1.Java調用shell

Java語言以其跨平台性和簡易性而著稱,在Java裡面的lang包里(java.lang.Runtime)提供了一個允許Java程序與該程序所運
行的環境交互的介面,這就是Runtime類,在Runtime類里提供了獲取當前運行環境的介面。
其中的exec函數返回一個執行shell命令的子進程。exec函數的具體實現形式有以下幾種:
public Process exec(String command) throws IOException
public Process exec(String command,String[] envp) throws
IOException
public Process exec(String command,String[] envp,File dir) throws
IOException
public Process exec(String[] cmdarray) throws IOException
public Process exec(String[] cmdarray, String[] envp) throws
IOException
public Process exec(String[] cmdarray, String[] envp,File dir)
throws IOException

我們在這里主要用到的是第一個和第四個函數,具體方法很簡單,就是在exec函數中傳遞一個代表命令的字元串。exec函數返回的是一個Process類
型的類的實例。Process類主要用來控制進程,獲取進程信息等作用。(具體信息及其用法請參看Java doc)。

1)執行簡單的命令的方法:

代碼如下:

⑧ linux下java怎麼調用兩個命令行cd /home/adminter && mkdir

執行外部的命令,兩個關鍵類,Runtime類和Process類,主要的方法,getRuntime().exex();

⑨ java如何從命令行輸入和輸出數據

import java.util.*;

import java.io.*;

import javax.swing.JOptionPane;

public class SysIn

{

public static void main(String [] args)

{

【java.util包中的Scanner類】

Scanner sc = new Scanner(System.in);

System.out.println("請輸入第一串字元:");

String firStr = sc.next();

System.out.println("你輸入的是" +firStr);

注意事項:next()讀取一個字元串,該字元串在一個空白符之前結束

(9)java調用命令行擴展閱讀

其他java從命令行輸入和輸出數據

1、【java.io包中的BufferedReader類】

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

System.out.println("請輸入第二串字元:");

String secStr=null;

try

{

secStr=bf.readLine();

} catch (IOException e) {

e.printStackTrace();

}

System.out.println("你輸入的是" + secStr);

注意事項:nextByte()讀取一個byte類型整數--其他類型整數類推

2、【調用 javax.swing.JOptionPane 類】

String jop = JOptionPane.showInputDialog

(null,"Please Input:","InputDialog",JOptionPane,QUESTION_MESSAGE);

System.out.println("你輸入的第三串字元:「 + jop);

}

}

注意事項:nextLine()讀取一行文本

⑩ java中如何執行命令行語句

可以使用java.lang.Process和java.lang.Runtime實現,下面展示兩個例子,其它用法請查閱資料:

1、執行ping命令:

importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;

publicclassProcessTest{
publicstaticvoidmain(String[]args){
BufferedReaderbr=null;
try{
Stringcmd="ping127.0.0.1";
//執行dos命令並獲取輸出結果
Processproc=Runtime.getRuntime().exec(cmd);
br=newBufferedReader(newInputStreamReader(proc.getInputStream(),"GBK"));

Stringline;
while((line=br.readLine())!=null){
System.out.println(line);
}
proc.waitFor();
}catch(IOExceptione){
e.printStackTrace();
}catch(InterruptedExceptione){
e.printStackTrace();
}finally{
if(br!=null){
try{
br.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
}

2、打開瀏覽器並跳轉到網路首頁:

importjava.io.IOException;

publicclassProcessTest{
publicstaticvoidmain(String[]args){
try{
StringexeFullPathName="C:/ProgramFiles/InternetExplorer/IEXPLORE.EXE";
Stringmessage="www..com";
String[]cmd={exeFullPathName,message};
Processproc=Runtime.getRuntime().exec(cmd);
}catch(IOExceptione){
e.printStackTrace();
}
}
}
熱點內容
資料庫數據插入語句 發布:2025-05-15 01:30:01 瀏覽:870
js是無需編譯直接運行嗎 發布:2025-05-15 01:28:30 瀏覽:475
android文件夾重命名 發布:2025-05-15 01:13:50 瀏覽:481
cns腳本 發布:2025-05-15 01:13:38 瀏覽:722
數據結構與演算法筆試題 發布:2025-05-15 01:04:20 瀏覽:417
搜狗輸入法如何直接編輯配置文件 發布:2025-05-15 00:51:47 瀏覽:668
電箱都有哪些配置 發布:2025-05-15 00:30:21 瀏覽:74
安卓qq邀請碼在哪裡尋找 發布:2025-05-15 00:02:04 瀏覽:35
三菱fx編程口 發布:2025-05-15 00:01:23 瀏覽:810
醫院招商引資宣傳片腳本 發布:2025-05-15 00:01:21 瀏覽:368