Ваш вопрос на самом деле слишком двусмысленный и широкий. Фактически вы можете запускать код Java на любой машине, которая вам нравится, независимо от языка, на котором вы запрограммировали веб-интерфейс. Например, вы можете создать веб-сайт на основе PHP, который взаимодействует с Java-приложением "бэкэнд" ( «приложение командной строки», как вы это называете). Единственное требование - наличие JRE на сервере. Тогда в основном все как веб-интерфейс достаточно: CGI, PHP, ASP, Python, и так далее, вы называете это. Пока у него есть доступ к базовой среде выполнения командной строки, что в примере с PHP должно быть сделано exec()
.
Но Java, фактически Java EE, также предоставляет интерфейс программирования веб-приложений: JSP / Servlet API , веб-компонент большого Java EE API . Это делает интеграцию с «приложением Java командной строки» гораздо более плавной. Вы можете просто поместить свое приложение в classpath и импортировать / получить доступ / использовать его в Servlet
классе real Java:
YourApplication app = new YourApplication();
Result result = app.doStuff();
// ...
Чтобы иметь возможность запускать JSP / Servlet (в конце JSP фактически также является сервлетом), вам нужна конкретная реализация API сервлета (вся Java EE является лишь абстрактной спецификацией). Apache Tomcat хорош для начала, другой популярной альтернативой является Eclipse Jetty . Это «простые» сервлет-контейнеры, которые реализуют API сервлетов, причем Jetty является более встроенным подходом (вы можете настроить и запустить его как «простое ванильное» Java-приложение). Но если вам нужно поддерживать / покрывать и другие аспекты API Java EE, вам потребуется сервер приложений, такой как Sun Glassfish или JBoss AS (оба из которых путь использует Tomcat в качестве части сервлет-контейнера).
Чтобы узнать больше о JSP / Servlet, я могу порекомендовать Coreservlets.com учебные пособия .