вызов методов Java из терминала - PullRequest
0 голосов
/ 14 января 2012

Предположим, у меня есть Java-программа myProgram.jar, которую я запускаю на сервере.Чтобы запустить программу, я набрал бы это в терминале:

>java -jar myProgram.jar

, и программа продолжит работать бесконечно.А что если в программе есть такая функция, как

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

, и я хочу подключиться к серверу по SSH и вызвать эту функцию с определенной строкой?чтобы я мог в любое время войти на свой сервер и изменить состояние моей программы.Возможно ли это?

Ответы [ 3 ]

2 голосов
/ 15 января 2012

Это можно сделать, но не легко.

Существуют стандартные способы достижения того, чего вы, вероятно, хотите: MBeans. Взгляните на http://docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html

0 голосов
/ 15 января 2012

Вы могли бы реализовать клиентское приложение Java, которое вызывает методы в приложении Java, работающем на сервере с использованием RMI. Затем, когда вы зайдете на сервер, вы можете запустить клиентское приложение с нужными вам параметрами и заставить его вызывать методы в другой программе.

0 голосов
/ 15 января 2012

У вас будет несколько вариантов здесь.Простейшим было бы, если бы вам нужно было только предоставить свой пользовательский текст в качестве аргумента при запуске Java-программы - в этом случае любые аргументы в конце вашей команды java будут переданы в виде массива String в ваши программы main method.

В противном случае вам понадобится реализовать какой-нибудь удаленный вызов процедуры (RPC).Вы можете использовать что-то вроде Java RMI (удаленный вызов метода) - там, где начинается ваше основное выполнение вашей программы, и вы можете использовать дочерние выполнения вашей программы (или другую клиентскую библиотеку вместе), которая вызывает методы в вашем основном выполнении, пока оно ещеБег.Если вы хотите расширить это, вы можете разместить на нем веб-службы по стандартному HTTP и использовать вызовы SOAP или REST.

Здесь есть много дополнительных опций и вариантов, в зависимости от ваших точных требований.

+ 1 за предложение DagR - опять же, в зависимости от того, что именно вы хотите сделать, JMX также подойдет для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...