2010-10-13 7 views
2

Можно создать дубликат:
Communication between two separate Java desktop applicationsКак общаться между двумя программами java?

У меня есть две программы Java работает на том же клиенте, Как я могу сделать это первая программа проходит несколько параметров или даты на второй программе?

+3

дублируется: http://stackoverflow.com/questions/1680898/communication-between-two-separate-java-desktop-applications –

ответ

0

Вам нужен слушатель и клиент.

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

0

В зависимости от ваших требований, Java Messaging Service, Jetlang или JavaSpaces может быть уместным.

+0

java.util.concurrent для потоков внутри только на программе - это Безразлично» t поддержка межпроцессного общения. – iirekm

+0

спасибо; удален –

0

Предполагая, что вы имеете в виду, что эти программы работают в разных JVM, вам нужно будет использовать службу обмена сообщениями Java, JavaSpaces или божественную CORBA. JMS, как и другие, имеет накладные расходы, поскольку вам нужен сервер JMS, такой как activemq, но в остальном это не так страшно и очень сильно. Если вы хотите использовать java.util.concurrent или JetLang (я думаю), вам нужно будет запустить обе программы под одной и той же JVM. Можете ли вы запустить одну программу из другой, чтобы они имели одно и то же пространство памяти JVM?

2

Это зависит от того, как вы хотели бы сообщить эти 2 программы:

  • Если вам нужен только межпроцессный семафоры, создать файл где-то в/TMP и зафиксировать его.

  • Если вам требуется только межсинхронный обмен данными (удаленный вызов процедур), RMI должен быть проще всего.

  • Если вам нужен асинхронный обмен сообщениями между процессами, JMS должен быть проще всего.

  • Если вам нужна совместная память между процессами, используйте сопоставленные файлы.

  • Если вам нужно все это, Terracotta (http://www.terracotta.org/) - это самый простой способ: Java-программы на разных JVM на одинаковых или даже разных компьютерах видят друг друга, как если бы они выполнялись внутри один JVM на одной машине. Разделение одной программы на несколько не требует даже каких-либо изменений кода - достаточно написать файл конфигурации XML.

Смежные вопросы