Как использовать сторонний API( jar) файл с javax.script?

Можем ли мы использовать сторонний jar-файл с фреймворком javax.scripting. Есть ли что-нибудь для добавления в classpath?

2 ответа

Я хотел бы просто поместить его в путь к классам процесса, вызывающего среду сценариев, и затем импортировать соответствующие классы (оператор / механизм импорта, очевидно, будет отличаться в зависимости от того, какой язык сценариев вы используете)

Да, ты можешь.

Попробуй это.

// import the packages.
importPackage(java.io);
importPackage(java.net);
importPackage(java.util);
importPackage(java.util.jar);

// Create a loader function
function loadJar( filename ){
    var file = new File(filename);
    // Create the class loader
    var loader = URLClassLoader.newInstance(new URL[]{file.toURI().toURL()});
    // The JAR file
    var jar = new JarFile(file);
    var entries = jar.entries();

    while (entries.hasMoreElements()){
        var element = entries.nextElement();
        if (element.getName().endsWith(".class")){
            try {
                // Load the class
                loader.loadClass(element.getName());
            } catch (Exception e){ e.printStackTrace(); }
        }
    }
}

Выполните этот сценарий со всеми банками перед любым другим, и это будет работать. В противном случае вы можете просто добавить необходимые библиотеки в путь к классам, отредактировав MANIFEST.MF файл.

Также я рекомендую вам использовать beanshell который работает даже на JDK 1.1

Для бобов вы можете использовать

addClassPath("<jar-file-name>");
Другие вопросы по тегам