Да, это возможно. Под каждым можно добавить еще один класс с основным методом для того, который выполняет требуемый класс / метод на основе аргумента.
, например,
public static void main(String... args) {
if ("foo".equals(args[0])) {
Foo.main(args);
} else if ("bar".equals(args[0])) {
Bar.main(args);
}
}
(не забудьте сами добавить очевидные проверки, такие как args.length
и т. Д.)
, которые вы можете использовать следующим образом:
java -jar YourJar.jar foo
Если хорошо однако, это может сделать излишним метод main()
других классов. Э.Г.
public static void main(String... args) {
if ("foo".equals(args[0])) {
new Foo().execute();
} else if ("bar".equals(args[0])) {
new Bar().execute();
}
}
Чтобы абстрагироваться от этого больше (чтобы избавиться от блоков if / else), вы можете позволить им реализовать некоторый интерфейс Action
с void execute()
и получить их в Map
:
private static Map<String, Action> actions = new HashMap<String, Action>();
static {
actions.put("foo", new Foo());
actions.put("bar", new Bar());
}
public static void main(String... args) {
actions.get(args[0]).execute();
}
Для работы на стороне сервера javascript требуется механизм javascript, который можно встраивать. Большинство этих «встраиваемых» движков предоставляют API, который позволяет вам взаимодействовать между исполняющимся кодом javascript и вашими собственными объектами / методами. Например, у вас может быть подключен код javascript, чтобы разрешить выполнение функций, написанных на Java или C #, или вы можете расширить таблицу символов сценария, чтобы включить в вашу систему доступ к объектам, не относящимся к javascript.
Я бы взглянул на некоторые из этих движков, я полагаю, что Rhino может быть лучше всего подходит для вас, поскольку его написано на Java. В их руководствах описывается внедрение Rhino в среду Java.
Edit в ответ на ваш второй вопрос.
Я не совсем уверен, что вы имеете в виду под созданным контентом библиотекой javascript. Однако вы упоминаете ExtJS, который, как я полагаю, подразумевает HTML-контент? Важно понимать разницу между DOM (которую Javascript может читать и изменять, но не является «частью» Javascript как таковой) и языком Javascript. Если вам нужна идея серверной части DOM , это совсем другая история, если вам нужен язык Javascript , то приведенные выше параметры должны вам помочь.
Mozilla Rhino JavaScript-движок довольно легко встроить; он позволяет создавать подклассы классов Java и реализовывать интерфейсы, а также просто выполнять некоторые быстрые и грязные трюки с объектами JavaScript. Я работаю над внедрением его в GeoServer в нерабочие моменты уже пару месяцев. Вы можете взглянуть на код Java , который встраивает Rhino, и несколько примеров JavaScript в нашем репозитории SVN. У Rhino также есть неплохое руководство , чтобы начать работу.
ASP и ASP.NET поддерживают серверный JavaScript. Для ASP все, что вам нужно сделать, это объявить:
<%@LANGUAGE=JAVASCRIPT%>
В самом верху ASP-файла, и вы кодируете на JavaScript. ASP.NET - в основном то же самое, за исключением того, что вы получаете доступ к платформе .NET.
Не могу помочь на фронте сервлетов Java, никакого опыта работы с ним.
«Helma - это серверная среда Javascript и структура веб-приложений для быстрого и эффективного создания сценариев и обслуживания ваших веб-сайтов и интернет-приложений». - http://helma.org/
У меня большой опыт использования серверного Javascript в среде Windows. Хост сценариев Windows во всех системах Windows предоставляет Javascript как один из языков по умолчанию. Вы можете создать COM-объект для взаимодействия с ним на любом языке, поддерживающем COM. Я думаю эта страница MSDN поможет вам начать, если вы захотите использовать этот подход.
Я чувствую, что вы будете счастливее, если выберете что-то, что не связано с COM. Я просто хотел убедиться, что у вас есть все варианты.
Если все, что вам нужно сделать, это благословить ваш HTML как Excel, вам может быть лучше послать HTML-код на сервер и вернуть его с заголовком content-disposition и соответствующим типом MIME. . Серверный JS обычно не реализует DOM, подобный браузеру, поэтому Ext не будет работать на стороне сервера.
В качестве альтернативы вы можете сгенерировать свой HTML-сервер на стороне сервера и пропустить обратный путь. Например, библиотека Java POI может генерировать реальные двоичные файлы Excel с несколькими листами и функциями ячеек.
Если вы действительно хотите использовать серверный JS в качестве сервера приложений, рассмотрите Myna . Я упомянул в этом вопросе некоторые из его преимуществ.