我们可以使用javax.scripting框架使用第三方jar文件。 有没有什么可以添加到classpath?
答案 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>");