導航:首頁 > 編程語言 > jschjava

jschjava

發布時間:2022-08-28 15:10:37

java程序執行linux命令

首先確保Linux開啟sshd服務,並支持遠程SSH連接。java程序使用jsch框架登錄Linux,執行命令。

protected void creation() throws Exception {
JSch jsch = new JSch();
session = jsch.getSession(userName, host, port);
session.setPassword(password);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setTimeout(CONNECT_TIMEOUT);
session.setConfig("PreferredAuthentications", "password,keyboard-interactive");
session.setServerAliveInterval(1000 * 60 * 2);
session.connect();
}

public String sendCommand(String command) throws Exception {
if(!isConnected())
throw new JSchException("Session is not connected, command exec faild.");
final ChannelExec exec = (ChannelExec)session.openChannel("exec");
ByteArrayOutputStream out = new ByteArrayOutputStream();
exec.setCommand(command);
exec.setOutputStream(out);
exec.setExtOutputStream(out);
exec.connect();
final Thread thread = new Thread() {
public void run() {
while(!exec.isEOF()) {
try { Thread.sleep(500L); } catch(Exception e) {}
}
}
};
thread.setDaemon(true);
thread.start();
thread.join(EXEC_TIMEOUT);
thread.interrupt();
if(thread.isAlive()) {
throw new JSchException("Exec Time Out Error");
} else {
try {
exec.disconnect();
out.close();
} catch (Exception e) {
}
byte[] lens = out.toByteArray();
String result = new String(lens, charset);
if(result.startsWith("bash") && result.indexOf("command not found") != -1)
return "";
return result;
}
}

Ⅱ java jsch ftp上傳到linux的事情,linux是不是需要設置什麼東西。因為現在有台伺服器上傳圖片速度很慢。

1)檢查一下伺服器的網路,可以ping一下看看響應時間
2)看看伺服器端是不是設置了限速,最大連接數設置等等
3)查看伺服器的負載是不是很高

Ⅲ java中操作Linux的ganymed和Jsch各有什麼特點

Java和Linux的理想關系是,一方面有一種可以在所有操作系統上運行的語言,另一方面操作系統可以根據需要進行各種計算。這種關系本身在過去,現在或者將來都可以實現,但現在目前Java並沒有在Linux界喚起多大的興趣,原因主要在於Java和Linux群體和技術在原則性和專業性上存在差異造成的。

原則性的差異涉及開放源碼和免費軟體這兩個術語。Java既不開放也不免費,而Linux堅持這兩個原則,至少在理論上是這樣。此外,Java倡導者也必須明白,在Linux界存在著一個明顯的分歧,大部分Linux人士都非常注重「free」這個詞,雖然有些人是從經濟上來了解這個詞,但無論怎樣他們都堅持開放源碼的原則。盡管Linux有向各個階層推廣的趨勢,但目前來說自由軟體的積極倡導者主要來自世界各大學的學生和研究人員。他們對Linux的發展是非常關鍵的,為開發Linux和操作系統軟體輸送了大批的人才。

開放源碼和Linux的商業價值取決於那些用Linux為市場開發產品的開發人員,以及喜歡根據自己需要用Linux對操作系統進行自定義的人們。如果必要,這些人會出錢購買Linux,因為它是一種開放的源碼。他們對Linux的發展也是至關重要的,否則,Linux將只是一堆計算機課程和深奧的研究課題。

Ⅳ jsch實現java sftp上傳,在非root用戶下出現permission dined異常,

這個正常,應該是你當前上傳用戶在上傳位置沒有許可權造成的,許可權應該在伺服器端修改

Ⅳ Java使用JSch,ChannelExec取不到結果,在while(true)中死循環。ChannelShell結果難處理,求指點

1、無法執行多條命令,每次ChannelExec在connect前要先setCommand,最後一次的設置生效。
2、由於第一個原因的限制,如果執行的命令需要環境變數(如JAVA_HOME),就沒有辦法了。這種方式執行基本的ls,ps之類的命令沒有問題,需要復雜的環境變數時有點力不從心。

Ⅵ com.jcraft.jsch.Channel; 是什麼意思

www.jcraft.com 是一個開源的致力於數據安全訪問機制的官方網站,而jsch是Java 安全管道的意思,com.jcraft.jsch.Channel 是此組織實現安全管道訪問java實現的一個工具(管道),是jsch-x.x.x.jar 組件包下的一個類

Ⅶ JAVA_JSCH如何遠程操作SFTP伺服器上的文件

使用SSH協議進行FTP傳輸的協議叫SFTP
換言之你的SSH協議一定啟用了,那麼使用基本linux命令在遠端執行即可。
我個人而言,JSCH一般是這樣用的:SFTP用於單純的文件上傳,之後直接使用基礎ssh協議執行遠端linux命令(比如說,移動文件或是重啟伺服器等等)
至於API的具體使用方式,稍微搜索一下很容易找到,比如這個:
http://blog.csdn.net/allen_zhao_2012/article/details/7941631

Ⅷ jsch.jar對jdk版本要求

下載好jdk,並按照提示一步步安裝,最後記下jdk所在的安裝位置,這里假設在C:\Program Files (x86)\Java\jdk1.8.0_20
2
現在開始配置環境變數。
滑鼠右鍵點擊「計算機」,選擇屬性,點擊「高級系統設置」,在點擊「高級」,最後點擊「環境變數」,進入界面開始配置
提示:若選擇「用戶變數」,則本次配置的變數只對該用戶有效
若選擇「系統變數」,則對所有用戶有效。
這里我們選擇「系統變數」。
我們在「系統變數」里點擊「新建」。

變數名為:JAVA_HOME
變數值為:C:\Program Files (x86)\Java\jdk1.8.0_20
記得確定啊。
ps:變數值就是你jdk安裝的路徑我這里為C:\Program Files (x86)\Java\jdk1.8.0_20

Ⅸ jsch如何執行top命令

首先確保Linux開啟sshd服務,並支持遠程SSH連接。java程序使用jsch框架登錄Linux,執行命令。

閱讀全文

與jschjava相關的資料

熱點內容
演算法申請著作權 瀏覽:213
以前手機號換了要怎麼登錄農行app 瀏覽:192
線切割編程系統怎麼繪畫 瀏覽:234
如何搭建雲伺服器異地容災 瀏覽:923
黃金拐點指標源碼 瀏覽:91
演算法導論第九章 瀏覽:276
鴿子為什麼生成伺服器沒反應 瀏覽:490
freebsdnginxphp 瀏覽:215
雜訊消除演算法 瀏覽:608
vue類似電腦文件夾展示 瀏覽:112
後備伺服器有什麼功效 瀏覽:269
連不上伺服器怎麼連 瀏覽:600
什麼構架的可以刷安卓系統 瀏覽:771
愛奇藝APP怎麼兌換CDK 瀏覽:994
程序員買4k顯示器還是2k顯示器 瀏覽:144
python多進程怎麼多窗口 瀏覽:818
電腦文件夾怎麼取消類別 瀏覽:47
cad拉線段命令 瀏覽:924
如何用電腦清理手機沒用的文件夾 瀏覽:100
儲存層次結構對程序員的意義 瀏覽:477