Я прочитал документы здесь: Mozilla 'Scripting Java'
Эти примеры также не отвечают на мой вопрос: Пример Rhino Liveconnect
Как мои файлы javascript знают, где найти, например, "java.lang"? Конечно, это работает внутри оболочки Rhino, но мне нужно запускать код Java внутри моих файлов JavaScript, а не из оболочки. Я могу видеть только файлы .java в загруженном источнике.
Я хочу вызывать java-методы на стороне сервера в моем javascript-файле nodejs-сервера. Разве Rhino как-то не нужно запускать, чтобы предоставить моему javascript возможность понимать java?
Изменить:
@eee Так что, если я правильно понимаю, Rhino на самом деле не позволяет мне запускать java из javascript, он просто переводит весь мой javascript в файлы java .class ... которые я все-таки должен выполнить внутри файла java? Такой вид побеждает цель вызова Java из JavaScript. Вся идея в том, чтобы иметь возможность вызывать любой код Java из моего кода JavaScript без необходимости создавать новые библиотеки Java.
Разве это не значит, что я не могу использовать Rhino? Nodejs использует движок V8 для выполнения javascript, поэтому я предполагаю, что один и тот же javascript-файл не может использоваться как V8, так и Rhino ... Я надеялся, что смогу вызвать java-методы, которые запустят Rhino, который переведет эти вызовы на Яву.
Сама Java тогда возвращала бы переменные filles с некоторыми данными.
@ Питер: почему http звонит? На данный момент и мой javascript, и мой java лежат на одном сервере. Во всяком случае, то, что вы говорите, не требует Rhino, не так ли? Я создал бы кучу файлов .class, а затем вызвал бы 'java myfile.class -v "firstvar" -x "secondvar"' .. я правильно вас понимаю?