當前位置:首頁 » 網頁前端 » java程序遠程腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

java程序遠程腳本

發布時間: 2022-09-07 22:55:08

⑴ java程序怎麼向遠程的hadoop提交maprece任務

將 hadoop執行job命令寫到shell腳本中。類似 hadoop jar x.jar ×××.MainClassName inputPath outputPath這種命令。

hadoop客戶機在本地,使用 Process執行shell腳本,java執行本地shell腳本的代碼

1
2
3
4

Process process =null;
String command1 = " ./test.sh";
process = Runtime.getRuntime().exec(command1);
process.waitFor();

3.hadoop 在遠程伺服器上,java可以使用SSH連接遠程伺服器執行shell腳本。需要藉助第三方jar包實現,常用的是ganymed-ssh2-build210.jar,網上有很多例子。

⑵ java 用shh2 遠程遠程Shell腳本執行工具問題

是不是遠程登陸用戶的許可權問題提呢?

⑶ 誰會寫在linux伺服器上運行java程序的運行腳本

你是要單次運行還是不掛斷在後台運行?單次直接java -jar xxx.jar 就可以了,不掛斷的話,可以編寫一個shell腳本,start.sh 內容如下
#!/bin/sh
nohup java -jar -XX:PermSize=64m -XX:MaxPermSize=128m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:SurvivorRatio=8 xxx.jar>/dev/null 2>&1 &
具體的參數你自己把握,然後保存,給這個腳本賦於可執行許可權,chmod +x start.sh
然後執行這個腳本,sh start.sh ,然後查看一下java進程,看這個服務起來沒有,jps

⑷ 雲南電腦培訓學校告訴你java編程開發語言編輯腳本應該怎麼做

腳本對於大多數程序員來說應該不陌生了吧。今天我們就一起來了解一下,在使用java編程開發語言編寫API腳本的時候都需要注意哪些問題。



Java腳本化API為誰准備?


腳本語言的一些有用的特性是:


方便:大多數腳本語言都是動態類型的。您通常可以創建新的變數,而不聲明變數類型,並且您可以重用變數來存儲不同類型的對象。此外,腳本語言往往會自動執行許多類型的轉換,例如,必要時將數字10轉換為「10」。


開發快速原型:您可以避免編輯編譯運行周期,只使用「編輯運行」!


應用擴展/定製:你可以「具體化」的部分應用程序,例如一些配置腳本,業務邏輯/規則和財務應用中的數學表達式。


為應用添加命令行模式,用於調試、運行時配置/部署時間。現在大多數應用程序都有一個基於Web的GUI配置工具。但是系統管理員/部署人員常常喜歡命令行工具。一個「標准」的腳本語言可以用來實現這個目的,而不是發明特設的腳本語言。


Java腳本API是一種獨立於框架的腳本語言,使用來自於Java代碼的腳本引擎。通過java腳本API,可以使用Java語言編寫定製/可擴展的應用程序並將自定義腳本語言選擇留給終用戶。Java應用程序開發者不需要在開發過程中選擇擴展語言。如果你使用JSR-223API來編寫應用,那麼你的用戶可以使用任何JSR-223兼容的腳本語言。


腳本包


Java腳本功能是在javax.script包中。這是一個比較小的,簡單的API。腳本的出發點是ScriptEngineManager類。一個ScriptEngineManager對象可以通過jar文件的服務發現機制發現腳本引擎。它也可以實例化腳本引擎來解釋使用特定的腳本語言編寫的腳本。


腳本變數


當你的java應用程序嵌入腳本引擎和腳本,你可能希望將您的應用程序對象為全局變數暴露於腳本中。這個例子演示了如何將您的應用程序對象作為全局變數暴露於腳本中。我們在應用程序中創建一個java.io.File對象作為全局變數,名稱是file。昆明電腦培訓http://www.kmbdqn.cn/發現該腳本可以訪問變數,例如,它可以調用它的公共方法。注意訪問java對象、領域和方法的語法依賴於腳本語言。JavaScript支持「自然」的類似java的語法。


⑸ java SSH遠程到linux 執行本地的腳本

scp file yonghuming@伺服器 :/路徑

把本地文件 file 傳送到 伺服器 的 /路徑 下。
然後就可以遠程執行了。

⑹ java 遠程調用,具體實現

1、使用java代碼通過ssh登陸linux並執行命令,正常情況下sshd服務都會有,知道用戶密碼就可以使用這種方式了。
2、要在遠程linux伺服器上執行命令,可以在linux伺服器上啟動一個服務做執行腳本的代理,不斷接受來自你這個項目發來的腳本信息,然後執行,再把結果返回給你項目中去。
第一種:以消息隊列的方式發送這些腳本信息,linux代理不斷接受,並返回結果。項目同時要不斷接受結果。
第二種:項目中產生的腳本,直接記錄到資料庫,linux上的代理訪問這個資料庫,獲取腳本信息,並將執行結果寫入資料庫。項目中輪詢執行結果。
上面我說的消息隊列可以採用activemq,或者rabbitmq這些。
命令執行,java中直接Runtime.getRuntime().exec(command);就行了。

⑺ java怎麼執行shell腳本

如果shell腳本和java程序運行在不同的伺服器上,可以使用遠程執行Linux命令執行包,使用ssh2協議連接遠程伺服器,並發送執行命令就行了,ganymed.ssh2相關mave配置如下,你可以自己網路搜索相關資料。

如果shell腳本和java程序在同一台伺服器上,

這里不得不提到java的process類了。

process這個類是一個抽象類,封裝了一個進程(你在調用linux的命令或者shell腳本就是為了執行一個在linux下執行的程序,所以應該使用process類)。

process類提供了執行從進程輸入,執行輸出到進程,等待進程完成,檢查進程的推出狀態,以及shut down掉進程。

<dependency>
<groupId>com.ganymed.ssh2</groupId>
<artifactId>ganymed-ssh2-build</artifactId>
<version>210</version>
</dependency>

本地執行命令代碼如下:

Stringshpath="/test/test.sh";//程序路徑
Processprocess=null;
Stringcommand1=「chmod777」+shpath;
process=Runtime.getRuntime().exec(command1);
process.waitFor();

⑻ 怎麼用java代碼調用遠程Linux上的shell腳本

package org.shirdrn.shell;

import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;

/**
* 遠程Shell腳本執行工具
*
* @author Administrator
*/
public class RemoteShellTool {

private Connection conn;
private String ipAddr;
private String charset = Charset.defaultCharset().toString();
private String userName;
private String password;

public RemoteShellTool(String ipAddr, String userName, String password, String charset) {
this.ipAddr = ipAddr;
this.userName = userName;
this.password = password;
if(charset != null) {
this.charset = charset;
}
}
/**
* 登錄遠程Linux主機
*
* @return
* @throws IOException
*/
public boolean login() throws IOException {
conn = new Connection(ipAddr);
conn.connect(); // 連接
return conn.authenticateWithPassword(userName, password); // 認證
}

/**
* 執行Shell腳本或命令
*
* @param cmds 命令行序列
* @return
*/
public String exec(String cmds) {
InputStream in = null;
String result = "";
try {
if (this.login()) {
Session session = conn.openSession(); // 打開一個會話
session.execCommand(cmds);
in = session.getStdout();
result = this.processStdout(in, this.charset);
conn.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
return result;
}

/**
* 解析流獲取字元串信息
*
* @param in 輸入流對象
* @param charset 字元集
* @return
*/
public String processStdout(InputStream in, String charset) {
byte[] buf = new byte[1024];
StringBuffer sb = new StringBuffer();
try {
while (in.read(buf) != -1) {
sb.append(new String(buf, charset));
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
}

⑼ 如何用java程序啟動遠程的linux服務

你得明白,啟動遠程的服務,首先得連接到伺服器上去。
下面有兩種方法:1、通過自定義程序;
2、使用現成的telnet或ssh(推薦)

方法1、首先得看linux伺服器的限制,如果伺服器允許自定義的登錄,
並且你在伺服器上運行了一個監聽某埠(如1234)的程序,
寫一個client端,用socket連接上去,就可以執行了。

方法2、如果伺服器支持ssh或者telnet登錄,且
允許遠程執行腳本的話,可以直接登錄進去(當然這算是
使用現成的程序吧,ssh更安全,不過或許不是你想要的。)

有現成的ssh服務,直接使用就是了,自己寫的肯定沒這個安全~~
要用java的話,應該也有現成的ssh客戶端---

⑽ 如何在java程序中調用linux命令或者shell腳本

//實現遠程連接Connectionconn=newConnection(scpAddr,Integer.parseInt(scpPort));conn.connect();//連接logger.debug("登陸遠程伺服器:"+scpUserName+","+scpPassword);//登陸遠程伺服器的用戶名密碼booleanisAuthed=conn.authenticateWithPassword(scpUserName,scpPassword);//登陸失敗if(!isAuthed){logger.debug("登陸遠程伺服器失敗");returnfalse;}SessionsshSession=conn.openSession();logger.debug("cd/&&rm-f"+file+"&&pwd");//linux命令sshSession.execCommand("cd/&&rm-f"+file+"&&pwd");//執行sshSession.close();conn.close();