Как использовать сторонний 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>");