【发布时间】:2012-11-13 11:08:16
【问题描述】:
我们可以使用带有 javax.scripting 框架的 3rd 方 jar 文件吗? 有什么可以添加到类路径的吗?
【问题讨论】:
-
请说得更具体一些,您要添加什么库,是脚本引擎的实现吗?
标签: java javax.script
我们可以使用带有 javax.scripting 框架的 3rd 方 jar 文件吗? 有什么可以添加到类路径的吗?
【问题讨论】:
标签: java javax.script
我希望简单地将其放在调用脚本框架的进程的类路径中,然后导入相关的类(导入语句/机制显然会根据您使用的脚本语言而有所不同)
【讨论】:
是的,你可以。
试试这个。
// 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>");
【讨论】: