关于StackOverflow的其他类似问题没有回答我在这方面的问题。我有此脚本不工作了,我想知道如何得到它的工作:与Beanshell的JDBC连接
// beanshell script script.bsh
import com.mysql.jdbc.Driver;
import java.sql.Connection;
name="com.mysql.jdbc.Driver";
c = getClass(name);
c = BshClassManager.classForName(name); // equivalent
而我得到的错误是:
// Debug: getResolvedMethod cache MISS: class bsh.BshClassManager - classForName
// Debug: Searching for method: classForName(java.lang.String) in 'bsh.BshClassManager'
// Debug: Looking for most specific method: classForName
bsh.UtilEvalError: Cannot reach instance method: classForName(java.lang.String) from static context: bsh.BshClassManager
at bsh.Reflect.checkFoundStaticMethod(Unknown Source)
at bsh.Reflect.resolveJavaMethod(Unknown Source)
at bsh.Reflect.resolveExpectedJavaMethod(Unknown Source)
at bsh.Reflect.invokeStaticMethod(Unknown Source)
at bsh.Name.invokeMethod(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHAssignment.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.source(Unknown Source)
at bsh.Interpreter.main(Unknown Source)
的documentation说,它应该存在。
BshClassManager是一个类名,你喜欢使用的方法是一个实例方法,而不是静态方法。 –
@Jochen:但文档告诉如此:http://www.beanshell.org/manual/classpath.html#Loading_Classes_Explicitly但是,根据该文档,'getClass()'应该足够了。 Djangofan:如果你只是删除那条违规线路怎么办? – BalusC
@BalusC - 好的,删除脚本的最后一行确实有效。为什么文档没有提到这些? – djangofan