Может ли JavaScript использовать классы из файла jar (не для Интернета)

75
8

У меня есть API в файле jar, но как я могу использовать классы из jar в JavaScript? Когда я попытаюсь импортировать их,

    conf = Packages.abcapi.Config;
var cfg = new conf.Config();

Это не работает. Это не будет использоваться в браузере или через Интернет.

ОБНОВИТЬ:

Я распространяю наш API на все языки сценариев JSR-223, используя Java ScriptEngine. В приложении Java я прочитал файл JavaScript, а затем выполнил файл с помощью ScriptEngine. Мне нужно, чтобы файл JavaScript использовал классы из API, который хранится в файле jar. Я пытаюсь установить банку в пути к классам при запуске ScriptEngine, но он по-прежнему не находит классы с использованием вышеуказанного кода. Это прекрасно работает в Jython, хотя, как и в Jython, нет проблем с использованием классов в файле jar после установки jar в пути к классу.

спросил(а) 2021-01-19T18:50:22+03:00 2 месяца, 3 недели назад
1
Решение
106

Я читаю файлы JavaScript, а затем выполняю их с помощью Java ScriptEngine. Добавьте банку в свой путь к классу, когда вы запустите Java-код, который будет выполнять JavaScript, как это,

    java -cp ./;C:\Location\Of\The\Jar\File\abc.jar MainClass

Затем внутри JavaScript вы можете получить пакет из этой банки и установить пакет в переменную. Затем, когда вы хотите использовать класс из этого пакета, просто префиксное имя класса с переменной, а затем a. как это,

    myvariable = Packages.abc.foo.pack.name;

var foo = new myvariable.ClassFromTheJarFile("arg1","arg2");

foo.doSomething();

var fooSister = new myvariable.AnotherCLassFromTheJarFile("arg1");

fooSister.doSomthingFromThisClass();

То, что я сделал неправильно, было попыткой импортировать класс непосредственно из пакета, как это,

    myvariable = Packages.abc.foo.pack.name.ClassFromTheJarFile;

Поэтому импортируйте пакет, а не классы. Чтобы уточнить, вам не нужно использовать Java *.

Это не используется в браузере или через Интернет. Вот еще одна ссылка, которая использует банку из URL-адреса и может быть полезна кому-то http://mozilla-firefox-extension-dev.blogspot.com/2004/11/calling-java-code-in-custom-jars -from.html

ответил(а) 2021-01-19T18:50:22+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема