Я пытаюсь написать программу, которая отправит функцию нескольким узлам, эти узлы получат эту функцию и выполнит ее, отвечая на результат (через сериализацию). Я немного искал, но ничего не нашел. Альтернативой может быть отправка файла .class через сокет и загрузка его на узле, но мне интересно, если кто-то нашел более простой способjava: Отправить метод через сокет
Редактировать: Я пытаюсь создать кластер с этим клиентом/сервер. И я хочу, чтобы клиент всегда работал на узлах и принимал любую работу без необходимости перекомпилировать код клиентского узла.
Решение: похоже, что нет возможности поместить файл .class. Необходимо отправить его, а затем загрузить его во время выполнения.
Пожалуйста, смотрите редактирование. Я пытаюсь создать кластер. Это не будет подключено к сети и будет работать по локальной сети – kalgecin
@kalgecin, ОК, так что это ювелирный магазин на Луне, но это не меняет основной части моего ответа. Единственный вид кода, который JVM может выполнять напрямую, это байт-коды Java, и единственный способ, которым вы можете получить байт-коды Java в JVM, - это загрузить файл .class. Если у вас есть что-то, что генерирует исходный код Java, то ваш единственный вариант (который я знаю) заключается в том, чтобы сохранить исходный код в файл '.java', вызвать javac в дочернем процессе и загрузить загружаемый' .class' файл в JVM ... –
@kalgecin ... Это зависит от вас, хотите ли вы отправить источник по кабелю и скомпилировать его на удаленном компьютере или сначала скомпилировать его, а затем отправить файл .class; но в любом случае вам понадобится файл .class. –