Как получить доступ к пользовательским классам Java из RingoJS? - PullRequest
0 голосов
/ 26 августа 2011

Я создал несколько классов на Java и объединил их в один пакет в пространстве имен 'org'.Как получить к ним доступ из RingoJS ?

Нужно ли копировать пакет в каталог 'src / org' в Ринго или мне нужно динамически изменять путь к классу из сценария?

1 Ответ

2 голосов
/ 29 августа 2011

Я наконец понял, как получить доступ к пользовательским классам Java в RingoJS. Должно быть, я был действительно глуп, чтобы никогда не видеть это прямо перед моими глазами.

В Rhino для доступа к пользовательским классам Java вам необходимо добавить их в ваш путь к классам Java. Это может быть утомительно, особенно когда конечный пользователь, не имеющий никаких знаний о программировании, пытается установить пакет CommonJS, который требует наличия определенных классов Java в пути к классам. Поправьте меня если я ошибаюсь. Менеджеры пакетов, такие как Tusk , могут сделать это за вас, и я был бы очень признателен, если бы вы уведомили меня о такой функции. Однако, насколько мне известно, конечные пользователи обязаны добавлять классы Java и / или файлы jar в путь к классам.

RingoJS значительно упрощает это. Он предоставляет глобальную функцию addToClasspath (pathName) , которая добавляет JAR-файл или каталог в classpath. Таким образом, мы можем иметь пакет Java или файл JAR в корневом каталоге пакета CommonJS и использовать функцию addToClasspath в самом файле JavaScript, чтобы автоматически добавить его в путь к классам. Кроме того, все файлы JAR в каталоге lib RingoJS включены в путь к классам по умолчанию. Это значительно упрощает дела.

В целях программирования вы можете добавить файлы JAR в каталог RingoJS lib. Тем не менее, я бы не рекомендовал это. Уменьшить сцепление и поддерживать каталог liboJS в чистоте (предотвращая будущие проблемы с пространством имен) и чтобы облегчить установку для конечного пользователя, я предлагаю использовать функцию addToClassPath. Возможно, это должно быть реализовано и в других реализациях CommonJS на основе Rhino.

...