導航:首頁 > 編程語言 > shell返回值給java

shell返回值給java

發布時間:2023-05-06 13:26:56

java執行帶參數的shell腳本並返回值

文件名確實不對
.sh文件才是linux下的批處理文件,它不認bat的
另外要保證.sh中調用的其他函數在當前目錄下能正常運行

⑵ shell腳本是否能給java程序傳值。

當然是可以,你可能是把windows下與linux下的調用混淆了, windows下分隔是; 而linux下是:
下面是個例子:
/usr/java/jdk1.6.0_31/bin/java -Dfile.encoding=UTF-8 -cp /usr/local/bin/ReplyParse.jar://usr/local/bin/lib/commons-httpclient-3.1.jar com.test.main "$arg1" "$arg2"

如果還有問題,請把報錯告訴大家。

⑶ shell 怎麼向java傳遞參數

碰到空格時,Windows 和 Linux 都是用雙引號把參數括起來。

⑷ 使用java連接linux,執行shell命令返回值有亂碼,怎麼解決

packagecom.pasier.xxx.util;

importjava.io.IOException;
importjava.io.InputStream;
importjava.nio.charset.Charset;

importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;

importch.ethz.ssh2.ChannelCondition;
importch.ethz.ssh2.Connection;
importch.ethz.ssh2.Session;
importch.ethz.ssh2.StreamGobbler;

publicclassRmtShellExecutor{

privatestaticfinalLoggerLOG=LoggerFactory.getLogger(RmtShellExecutor.class);

privateConnectionconn;
privateStringip;
privateStringusr;
privateStringpsword;
privateStringcharset=Charset.defaultCharset().toString();

privatestaticfinalintTIME_OUT=1000*5*60;

publicRmtShellExecutor(Stringip,Stringusr,Stringps){
this.ip=ip;
this.usr=usr;
this.psword=ps;
}

privatebooleanlogin()throwsIOException{
conn=newConnection(ip);
conn.connect();
returnconn.authenticateWithPassword(usr,psword);
}

publicStringexec(Stringcmds)throwsIOException{
InputStreamstdOut=null;
InputStreamstdErr=null;
StringoutStr="";
StringoutErr="";
intret=-1;

try{
if(login()){
Sessionsession=conn.openSession();
session.execCommand(cmds);
stdOut=newStreamGobbler(session.getStdout());
outStr=processStream(stdOut,charset);
LOG.info("caijl:[INFO]outStr="+outStr);
stdErr=newStreamGobbler(session.getStderr());
outErr=processStream(stdErr,charset);
LOG.info("caijl:[INFO]outErr="+outErr);
session.waitForCondition(ChannelCondition.EXIT_STATUS,TIME_OUT);
ret=session.getExitStatus();

}else{
LOG.error("caijl:[INFO]ssh2loginfailure:"+ip);
thrownewIOException("SSH2_ERR");
}

}finally{
if(conn!=null){
conn.close();
}
if(stdOut!=null)
stdOut.close();
if(stdErr!=null)
stdErr.close();
}

returnoutStr;
}

privateStringprocessStream(InputStreamin,Stringcharset)throwsIOException{
byte[]buf=newbyte[1024];
StringBuildersb=newStringBuilder();
while(in.read(buf)!=-1){
sb.append(newString(buf,charset));
}
returnsb.toString();
}

publicstaticvoidmain(String[]args){

Stringusr="root";
Stringpassword="12345";
StringserverIP="11.22.33.xx";
StringshPath="/root/ab.sh";

RmtShellExecutorexe=newRmtShellExecutor(serverIP,usr,password);

StringoutInf;

try{
outInf=exe.exec("sh"+shPath+"xn");
System.out.println("outInf="+outInf);
}catch(IOExceptione){
e.printStackTrace();
}
}

}

⑸ shell 裡面調用 java 怎麼取到java地返回值呀

shell:var=`java Demo`
Demo.java:System.out.print("賦給shell變數的值")

最簡單的方法了。

⑹ java調用shell無法返回參數。請教。

用java調用shell時沒有shell環境變數,你的BPbin在哪個路徑下?操作系統可能找不到的。
所以
1、你可以將腳本改成:
#!/bin/sh
db=`BPbin 2>&1`
echo $db
看我說得對不對
2、將BPbin的絕對路徑寫上去
我說的是可能性,你先按我說的操作,然後視結果看看是什麼情況

閱讀全文

與shell返回值給java相關的資料

熱點內容
解壓玩具創意圖片 瀏覽:525
組態軟體pdf 瀏覽:484
箍筋加密區是如何計算根數的 瀏覽:852
筆記本如何伺服器從做raid 瀏覽:929
視頻編解碼演算法工程師 瀏覽:586
手機上伺服器怎麼找 瀏覽:323
抖音程序員變裝男 瀏覽:338
qd128y壓縮機參數 瀏覽:834
解壓棒的視頻 瀏覽:144
linux下kill命令 瀏覽:346
伺服器和網路機櫃有什麼重要 瀏覽:349
貼吧文件夾位置圖片 瀏覽:505
python讀取處理二進制文件 瀏覽:398
億速雲北京三區雲伺服器 瀏覽:566
高管綠程序員 瀏覽:43
蘿卜影視APP源碼推薦設置教程 瀏覽:782
小米官方包被加密 瀏覽:884
程序員的午飯視頻 瀏覽:289
雅思聽力pdf 瀏覽:359
高跟鞋先生程序員 瀏覽:59