Как создавать большие развертываемые программы на нескольких языках? - PullRequest
0 голосов
/ 19 марта 2011

Привет, все это мой пост на stackoverflow.

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

Итак, я понимаю цикл разработки программного обеспечения и знаю приличное количество кода (c ++ и Java, а также Visual Basic, я учусь в СНГ с CS в прошлом году). Я могу написать некоторые программы в elipse, используя Java, и даже могу сделать некоторые базовые компоненты GUI в eclipse, используя Java.

Теперь на мой вопрос, состоящий из 3 частей: я понимаю, что можно сделать .jar из нескольких файлов .java и распространять его, но, подумав об общей программе, такой как скажем, Yahoo Messenger (просто в качестве примера), я пришел к следующим часть вопроса:

Во-первых, если бы вы могли написать программу, такую ​​как Yahoo Messenger, просто затмить с помощью Java, или вам потребуются другие инструменты, такие как другие языки и другие среды разработки, как проходит проект от начала до конца? (Я думаю, что я немного потерян, потому что я написал только командную строку и простые приложения с графическим интерфейсом).

Во-вторых, скажем, было проще создать функцию в Yahoo Messenger, используя другой язык, как можно написать одну программу на более чем одном языке? Скажем, например, что вы хотели написать некоторый код на python или c ++, и большая часть вашего кода была на Java, т.е. ваш основной метод - java, а вы компилируете с использованием JVM. (при условии, что вы не можете просто вставить код Python или C ++ в Java-программу) Я немного погуглил и увидел кое-что о связывании компилятора и включении нативного кода для включения кода другого языка в проект Java. Ссылки на другие материалы для чтения также приемлемы, если объяснение слишком длинное.

В-третьих, как работает развертывание? Скажем, я закончил писать код для моей программы и хочу превратить его в .exe (для пользователей Windows) и разместить его на своем сайте, чтобы люди могли его скачать. Я знаю, что Windows поставляется с встроенной утилитой iexpress для создания .exe-файлов. Помимо распространения .jar, как можно превратить источник в exe? Еще раз спасибо за ваш вклад и время. Я новичок и пытаюсь обернуть голову вокруг этих понятий. Ответы могут быть предоставлены в технической области или просто концептуально или высоко ценится.

-Марк

Ответы [ 3 ]

0 голосов
/ 19 марта 2011

Допустим, я написал код для моей программы и хочу превратить его в .exe (для пользователей Windows) и прикрепить его к моему сайту для загрузки пользователями.

В этом случае я бы сказал, что вы были глупы.;)

Java Web Start - лучший вариант для развертывания полнофункционального клиентского приложения на Java.с веб-сайта.JWS работает на любой платформе с Java.

0 голосов
/ 19 марта 2011

1) В большинстве случаев вы можете написать свою программу на Java без использования какого-либо другого языка программирования.Есть довольно редкие случаи, когда вам нужно вызвать dll из java для взаимодействия с какой-то проприетарной программой, для этого вам нужно будет использовать JNI и C или C ++.Возможно, более распространенным случаем использования нескольких языков является добавление скриптовости в ваше приложение.Например, моя компания предлагает серверное / клиентское приложение, которое может создавать сценарии для пользователей, использующих Groovy, но сам сервер и расширенный клиент написаны только на Java.

2) Интеграция Java и другого языка программирования зависитна другом языке.Интеграция Groovy проста, и я думаю, что интеграция Python (с использованием JPython) или Ruby (с использованием JRuby) довольно проста.Но это усилие (не говоря уже о психическом напряжении программирования на разных языках), и я бы не рекомендовал делать это, если нет особого требования для этого.

3) Как всегда, есть несколько вариантов.См. , как-can-i-convert-my-java-program-to-an-exe-file для создания исполняемого файла Windows.Или вы можете создать установщик Windows, используя, например, NSIS.Или используйте Java Web Start.

Если цель этого вопроса состоит в том, чтобы понять, как написаны и развернуты некоторые большие java-приложения (для настольных компьютеров), я рекомендую Eclipse RCP book ,Эта книга познакомит вас с разработкой и развертыванием клиента мессенджера XMPP / Jabber с использованием платформы Eclipse RCP.Имейте в виду, что не существует единственно верного способа создания большого приложения, и другие фреймворки Java-приложений делают вещи по-другому.

0 голосов
/ 19 марта 2011
  1. Несколько клиентов IM написаны на Java, хотя я рискну предположить, что основные клиенты будут в основном написаны на C, C ++ или (на Mac) Objective-C.
  2. Написание одной программы на нескольких языках сопряжено с многочисленными трудностями, и характер проблем варьируется в зависимости от комбинации языков, которые вы хотите использовать. Во многих случаях вам, вероятно, не повезет, если вы объедините более двух языков. Один набор проблем с импедансом достаточно плох, три - это почти гарантированное бедствие.
    • Вы можете избежать этих проблем, разделив одно приложение на несколько программ, каждая из которых написана на одном языке и взаимодействует с другими программами через какой-то механизм IPC.
  3. Создание «exe» также очень специфично для языка. Например, Java, C #, C / C ++ и Python имеют совершенно разные истории развертывания.
...