Я использую идиому класса Jython classPathHacker, которую я видел в нескольких местах в Интернете. Окончательный источник:Hacking classpath в jython
http://www.jython.org/jythonbook/en/1.0/appendixB.html#using-the-classpath-steve-langer
Однако я получаю следующую неудачу:
TypeError (getDeclaredMethod(): 2nd arg can't be coerced to java.lang.Class[])
Вот мой код (ну в основном код SG Лангера):
class classPathHacker :
##########################################################
# from http://forum.java.sun.com/thread.jspa?threadID=300557
#
# Author: SG Langer Jan 2007 translated the above Java to this
# Jython class
# Purpose: Allow runtime additions of new Class/jars either from
# local files or URL
######################################################
import java.lang.reflect.Method
import java.io.File
import java.net.URL
import java.net.URLClassLoader
import jarray
def addFile (self, s):
#############################################
# Purpose: If adding a file/jar call this first
# with s = path_to_jar
#############################################
# make a URL out of 's'
f = self.java.io.File (s)
u = f.toURL()
a = self.addURL (u)
return a
def addURL (self, u):
##################################
# Purpose: Call this with u= URL for
# the new Class/jar to be loaded
#################################
parameters = self.jarray.array([self.java.net.URL], self.java.lang.Class)
sysloader = self.java.lang.ClassLoader.getSystemClassLoader()
sysclass = self.java.net.URLClassLoader
print parameters
method = sysclass.getDeclaredMethod("addURL", parameters)
a = method.setAccessible(1)
jar_a = self.jarray.array([u], self.java.lang.Object)
b = method.invoke(sysloader, jar_a)
return u
tmp = classPathHacker()
tmp.addFile("C:\Program Files\Sikuli\libs\mysql-connector-java-3.1.14.jar")
Ошибка возникает в строке method = sysclass.getDeclaredMethod("addURL", parameters)
.
К сожалению, я не нашел этот, потому что я искал сообщения всей ошибки. Ура! – spierepf
Вчерашний мой google-fu был сильным – KevinDTimm