關於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