簡體   English   中英

從終端調用java方法

[英]calling java methods from a terminal

假設我有一個java程序myProgram.jar ,我在服務器上運行它。 要啟動程序,我會在終端輸入:

>java -jar myProgram.jar

該計划將繼續無限期地運行。 那么如果程序具有諸如此類的功能呢?

void processInput(String text){
     //process the text
}

我想SSH到服務器並用特定的字符串調用此函數? 所以我可以隨時登錄我的服務器並改變我的程序狀態。 這可能嗎?

這可以做到,但不容易。

有標准的方法來實現您可能想要的東西:MBeans。 請查看http://docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html

你在這里有很多選擇。 最簡單的是,如果您只需要在啟動時將自定義文本作為參數提供給Java程序 - 在這種情況下,您在java命令末尾的任何參數都將作為String數組傳遞到您的程序main方法中。

否則,您將要實現某種遠程過程調用(RPC)。 您可以使用Java RMI(遠程方法調用)之類的東西 - 您的程序的主要執行開始,並且您可以使用程序的子執行(或所有其他客戶端庫),它們在主執行時調用方法運行。 如果您想進一步擴展,可以讓它通過標准HTTP托管Web服務,並使用SOAP或REST調用。

根據您的具體要求,此處還有許多其他選項和變體。

對於DagR的建議+1 - 再次,取決於你想要做什么,JMX也可能適合這一點。

您可以實現一個Java客戶端應用程序,該應用程序使用RMI調用服務器上運行的Java應用程序上的方法。 然后,當您進入服務器時,可以使用所需的參數運行客戶端應用程序,並讓它調用其他程序中的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM