導航:首頁 > 編程語言 > 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相關的資料

熱點內容
珠海存儲伺服器地址怎麼找 瀏覽:413
md5演算法字元串長度 瀏覽:4
可以二次虛化的雲伺服器 瀏覽:779
思科2500編程器固件 瀏覽:235
php開發桌面應用程序 瀏覽:904
支付寶app哪裡可以加油 瀏覽:71
路由器ttl刷編程器固件 瀏覽:719
縱向加密密鑰協商狀態時間 瀏覽:851
mc花雨庭伺服器有些什麼 瀏覽:809
linux製作網頁 瀏覽:19
xlsx加密忘記了怎麼辦 瀏覽:999
app湖北農信怎麼解約 瀏覽:426
在線編程教育項目 瀏覽:759
電信采購5萬台伺服器干什麼用 瀏覽:200
騰訊雲伺服器登錄地址 瀏覽:988
程序員在地鐵上寫字 瀏覽:555
解壓包未知文件格式怎麼辦 瀏覽:578
程序員破壞資料庫 瀏覽:331
sh格式如何編譯 瀏覽:344
虛擬伺服器雲主機哪個好 瀏覽:98