真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

js調(diào)本地linux命令 linux執(zhí)行js腳本

java程序里調(diào)用linux命令

1.Java調(diào)用shell

目前創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、巫山網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

Java語言以其跨平臺性和簡易性而著稱,在Java里面的lang包里(java.lang.Runtime)提供了一個允許Java程序與該程序所運

行的環(huán)境交互的接口,這就是Runtime類,在Runtime類里提供了獲取當(dāng)前運行環(huán)境的接口。

其中的exec函數(shù)返回一個執(zhí)行shell命令的子進程。exec函數(shù)的具體實現(xiàn)形式有以下幾種:

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

我們在這里主要用到的是第一個和第四個函數(shù),具體方法很簡單,就是在exec函數(shù)中傳遞一個代表命令的字符串。exec函數(shù)返回的是一個Process類

型的類的實例。Process類主要用來控制進程,獲取進程信息等作用。(具體信息及其用法請參看Java doc)。

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

代碼如下:

上面的代碼首先是聲明了一個代表命令的字符串commands,它代表了ls -l

這個命令。之后我們用Runtime.getRuntime().exec(commands)來生成一個子進程來執(zhí)行這個命令,如果這句話運行成功,則

命令 ls -l 運行成功(由于沒有讓它顯示,不會顯示ls -l

的結(jié)果)。后面的流操作則是獲取進程的流信息,并把它們一行行輸出到屏幕。2)執(zhí)行帶有參數(shù)的命令(尤其是參數(shù)需要用引號的)時則需要用String的數(shù)組來表示整個命令,而且要用轉(zhuǎn)義符把引號的特殊含義去除,例如我們要執(zhí)行

find / -name "*mysql*" -print 時,用如下代碼

Java 可以通過 Runtime 調(diào)用Linux命令,形式如下:

Runtime.getRuntime().exec(command)

但是這樣執(zhí)行時沒有任何輸出,因為調(diào)用 Runtime.exec 方法將產(chǎn)生一個本地的進程,并返回一個Process子類的實例(注意:Runtime.getRuntime().exec(command)返回的是一個Process類的實例)該實例可用于控制進程或取得進程的相關(guān)信息。

由于調(diào)用 Runtime.exec 方法所創(chuàng)建的子進程沒有自己的終端或控制臺,因此該子進程的標(biāo)準(zhǔn)IO(如stdin,stdou,stderr)都通過 Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream() 方法重定向給它的父進程了。

用戶需要用這些stream來向子進程輸入數(shù)據(jù)或獲取子進程的輸出,下面的代碼可以取到 linux 命令的執(zhí)行結(jié)果:

瀏覽器中的javascript能調(diào)用linux客戶端上的上的shell程序嗎

首先在shell中執(zhí)行js腳本需要可以執(zhí)行的環(huán)境,其次調(diào)配環(huán)境,之后進行運行,具體步驟與實例如下:

①安裝java、javac環(huán)境(如已安裝環(huán)境請?zhí)^此步)

yum install java-1.6.0-sun.x86_64 java-1.6.0-sun-devel.x86_64

②準(zhǔn)備java程序RunScriptFile.java

import java.io.FileReader;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

public class RunScriptFile {

public static void main(String[] args) {

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("js");

try {

FileReader reader = new FileReader("testFile.js");

engine.eval(reader);

reader.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

③準(zhǔn)備js文件testFile.js

function add(a, b) {

c = a + b;

return c;

}

result = add (10, 5);

print ('Result = ' + result);

④編譯java程序

javac RunScriptFile.java

會在當(dāng)前目錄生成RunScriptFile.class文件

⑤執(zhí)行程序

java RunScriptFile

⑥結(jié)果顯示

Result = 15

java程序里如何調(diào)用linux命令?

Java可以通過Runtime調(diào)用Linux命令,形式如下:

Runtime.getRuntime().exec(command)

但是這樣執(zhí)行時沒有任何輸出,因為調(diào)用Runtime.exec方法將產(chǎn)生一個本地的進程,并返回一個Process子類的實例(注意:Runtime.getRuntime().exec(command)返回的是一個Process類的實例)該實例可用于控制進程或取得進程的相關(guān)信息。

由于調(diào)用Runtime.exec方法所創(chuàng)建的子進程沒有自己的終端或控制臺,因此該子進程的標(biāo)準(zhǔn)IO(如stdin,stdou,stderr)都通過Process.getOutputStream(),Process.getInputStream(),Process.getErrorStream()方法重定向給它的父進程了。

用戶需要用這些stream來向子進程輸入數(shù)據(jù)或獲取子進程的輸出,下面的代碼可以取到linux命令的執(zhí)行結(jié)果:

try{

String[]cmd=newString[]{”/bin/sh”,“-c”,”ls“};

Processps=Runtime.getRuntime().exec(cmd);

BufferedReaderbr=newBufferedReader(newInputStreamReader(ps.getInputStream()));

StringBuffersb=newStringBuffer();

Stringline;

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

sb.append(line).append(”\n”);

}

Stringresult=sb.toString();

System.out.println(result);

}catch(Exceptione){

e.printStackTrace();

}

js怎么在linux平臺下通過火狐調(diào)用linux命令

js是前端的語言。

在windows下js可以通過activex調(diào)用執(zhí)行msdos,這也是通過了微軟的瀏覽器控件的,依賴于windows的一套東西,并不單純是js直接調(diào)用。

同樣的,在linux下也是不行的。

你是不是說的node.js調(diào)用shell?node是可以的,因為node是一個web容器,實際上底層是c++寫的,是通過c++來執(zhí)行shell命令,所以也不是js直接的調(diào)用。


名稱欄目:js調(diào)本地linux命令 linux執(zhí)行js腳本
本文URL:http://weahome.cn/article/dddesis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部