如何使用javax.script的第三方API(jar)文件?

时间:2012-11-13 11:08:16

标签: java javax.script

我们可以使用javax.scripting框架使用第三方jar文件。 有没有什么可以添加到classpath?

2 个答案:

答案 0 :(得分:0)

我希望简单地将它放在调用脚本框架的进程的类路径上,然后导入相关的类(导入语句/机制显然会根据您使用的脚本语言而有所不同)

答案 1 :(得分:0)

是的,你可以。

试试这个。

// 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(); }
        }
    }
}

在所有其他jar之前执行此脚本,这将起作用。另外,您可以通过编辑MANIFEST.MF文件将所需的库添加到类路径中。

我还建议您使用beanshell,它甚至可以在JDK 1.1上运行

对于beanshell,您可以使用

addClassPath("<jar-file-name>");