Java 为什么会出现错误;未初始化的常量驱动程序管理器“;是否在以前运行的代码中发生?

Java 为什么会出现错误;未初始化的常量驱动程序管理器“;是否在以前运行的代码中发生?,java,ruby,jdbc,driver,jruby,Java,Ruby,Jdbc,Driver,Jruby,我正在使用jruby,并通过db2jcc4.jar文件调用DB2/BIGSQL数据库。我将插入和选择连接得非常好,然后突然出现了错误“uninitialized constant DriverManager” 文件db2jcc4.jar是可读的,并且具有正确的权限。我甚至回到了以前的工作,早期版本的代码,我得到了相同的错误。唯一值得注意的变化是服务器已重新启动 require 'java' java_import 'com.ibm.db2.jcc.DB2Driver' java_import

我正在使用jruby,并通过db2jcc4.jar文件调用DB2/BIGSQL数据库。我将插入和选择连接得非常好,然后突然出现了错误“uninitialized constant DriverManager”

文件db2jcc4.jar是可读的,并且具有正确的权限。我甚至回到了以前的工作,早期版本的代码,我得到了相同的错误。唯一值得注意的变化是服务器已重新启动

require 'java'

java_import 'com.ibm.db2.jcc.DB2Driver'
java_import 'java.util.Properties'

url = "jdbc:db2://SERVER-REMOVED:PORT_REMOVED/BIGSQL"
output, rset, stmt, conn = nil

begin
  properties = java.util.Properties.new
  properties['user'] = 'USER REMOVED'
  properties['password'] = 'PASSWORD REMOVED'

  # Load driver class
  driver = DB2Driver.new

  DriverManager.registerDriver driver #this comes out to nil
  regDrivers = DriverManager.getDrivers
  conn = DriverManager.get_connection url, properties
  ...

知道发生了什么吗?

您可能需要导入DriverManager类

java_import 'java.sql.DriverManager'

当然,DavidFlorenz的答案正确地说明了如何解决您的问题,但要回答您的问题,为什么会收到这样的错误消息:Ruby中的常量是以大写字母开头的标识符。在您想要运行
DriverManager.registerDriver
时,Ruby看到常量
DriverManager
,显然还没有看到该常量的定义。谢谢!这太奇怪了,它在没有这行代码的情况下正常工作了两天,然后就停止了工作。