2012-04-08 1 views
2

Предположим, что я создаю проект Java в Eclipse, который имеет 3-10 классов, и один из них имеет основной (String [] args) метод, который запускает всю программу и принимает 4 аргумента в командной строке. Давайте также скажем, что этот проект имеет 6-10 файлов .jar в src/lib, которые ему нужно запустить.Как запустить Java-программы через ssh?

Если у меня есть ssh доступ к другому компьютеру (UNIX на обоих концах), и я хочу запустить эту программу, как именно я могу это сделать?

Я спрашиваю, потому что я занимаюсь распределенными вычислительными проектами, и мне нужно запустить мою программу на нескольких машинах, но я - полная командная строка noob, и у меня нет физического доступа ко всем машинам.

Редактировать: Кажется, мне нужно SCP файлы. Может ли кто-нибудь показать мне конкретную команду, которая запускает программу Java? В том числе, в каком каталоге я должен запускать его и как включить зависимости JAR.

ответ

5

В общем, вы используете ssh для входа на удаленный компьютер, а затем запускаете программы из хранилища этой машины, используя ресурсы этой машины.

Итак, если вы хотите запустить свою программу Java на другой машине, вам нужно скопировать необходимые файлы там, затем ssh на этот компьютер и запустить программу из удаленной командной строки.

2

Вы пишете крошечную программу бутстрапа, которая будет вашим MicroKernel. Вы SCP, что MicroKernel на удаленную машину. Эта программа будет использовать пользовательский ClassLoader, чтобы вытащить остальную часть зависимостей для вашего реального приложения в память или некоторое хранилище на удаленную машину. Просмотрите URL-адрес ClassLoader для получения некоторой помощи, поскольку он может загружать файлы JAR из HTTP-адресов.

Или вы можете просто застегнуть всю вашу программу, SCP на удаленную машину, разархивировать ее, а затем запустить «java», как обычно. Если у вас есть доступ к SSH, у вас должен быть доступ к файлам scp на этом компьютере. Если нет, вы всегда можете использовать SSH в машине для удаления, а затем scp их с вашей машины.

Пример:

ssh [email protected] 
> mkdir /location/to/program 
> scp [email protected]:/location/to/program/* /location/to/program 

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

6

запустить

ява -jar thejarfile.jar "arg1" "arg2" "ectect .."

, если вы хотите, чтобы запустить его в фоновом режиме Java -jar thejarfile .jar "arg1" "arg2" &

, чтобы убить его, если его в фоновом режиме пс -aux, чтобы получить идентификатор, а затем kill (id number)