Выполнение java-файла в Google Compute Engine из настольного приложения/внешнего приложения

Я создал экземпляр GCE (с постоянным диском) и успешно смог подключиться к этому экземпляру по ssh с моей машины с помощью gcutil. Теперь предположим, что я сохранил некоторый файл Java-программы/класса/jar-файл на диске экземпляра GCE /home/abc/a.java.

Теперь я хочу запустить это с моей локальной машины программно, используя java. Пожалуйста, помогите мне, как я могу сделать то же самое.?


person user2553672    schedule 20.11.2013    source источник


Ответы (2)


Самый простой способ - представить вашу java-программу как веб-службу RESTful и вызвать ее через HTTP из клиентского кода вашего локального компьютера.

В противном случае вам нужно будет выяснить, как подключить стандартный ssh к Google Compute Engine. Затем используйте задачи Java или Gradle для входа по ssh и вызова вашей программы.

person yunspace    schedule 12.01.2014

Вам нужно будет скомпилировать программу Java a.java, например:

javac a.java

Затем вы можете выполнить полученный файл /home/abc/a.class локально (из рабочего каталога /home/abc/):

# If OS is RHEL 7:
java -cp /home/abc a

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

# If GCE is RHEL 7:
ssh -i ~/.ssh/gce.pub -c des -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no [email protected] 'java -cp /home/abc a'

Обратите внимание, что в этой командной строке предполагается, что открытый ключ вашей учетной записи GCE находится в (локальном) ~/.ssh/gce.pub и что abc — это имя пользователя GCE (как вы указали), а 110.42.53.22 — вымышленный IP-адрес, который вы замените на внешний IP-адрес вашего экземпляра GCE. Пересмотрите в соответствии с вашими реальными условиями.

person Matthew    schedule 29.08.2016