【问题标题】:how to use 3rd party API( jar ) file with javax.script?如何使用带有 javax.script 的 3rd 方 API(jar) 文件?
【发布时间】:2012-11-13 11:08:16
【问题描述】:

我们可以使用带有 javax.scripting 框架的 3rd 方 jar 文件吗? 有什么可以添加到类路径的吗?

【问题讨论】:

  • 请说得更具体一些,您要添加什么库,是脚本引擎的实现吗?

标签: java javax.script


【解决方案1】:

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

【讨论】:

    【解决方案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(); }
            }
        }
    }
    

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

    另外我建议您使用beanshell,它甚至可以在 JDK 1.1 上使用

    对于beanshell,可以使用

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多