将 DB2 许可证集成到独立的 JAR 应用程序中



我开发了一个用于读取数据库表的小实用程序,并且正在尝试访问 DB2 表。我正在使用 DB2 for z/OS,我的应用程序是一个独立的 JAR 文件,您必须使用java -jar在命令行中执行该文件。此外,我还有从 DBA 获得的db2jcc_license_cu.jar许可证。我已经尝试将此许可证打包到我的JAR应用程序中,但是我总是收到此错误:

[jcc][t4][10509][13454][4.21.29] Connection to the data server failed. The IBM Data Server for JDBC and SQLJ license was invalid 
or was not activated for the DB2 for z/OS subsystem. If you are connecting directly to 
the data server and using DB2 Connect Unlimited Edition for System z, perform the 
activation step by running the activation program in the license activation kit.  
If you are using any other edition of DB2 Connect, obtain the license file, 
db2jcc_license_cisuz.jar, from the license activation kit, and follow the installation 
directions to include the license file in the class path. ERRORCODE=-4230, SQLSTATE=42968

连接 URLjdbc:db2://<server>:<port>/<schema_name>:progressiveStreaming=2;,应该是类型 4 连接。我正在使用通用 DB2 驱动程序。我不知道包含许可证jar是否足以使事情正常工作,或者我是否需要更多的东西,例如加载许可证或类似操作。

任何帮助将不胜感激。

据我所知,db2jcc_license_cu.jar需要在应用程序的类路径上,以便 JDBC 驱动程序拾取它。

当您使用java -jar ...启动应用程序时,您无法在命令行上指定其他 jarfile。

所以你有两个选择:

  1. 在清单中包含db2jcc_license_cu.jar。生成应用程序的 jar 文件时的 MF。然后,您需要将其拖放到清单中引用的其他 jar 文件所在的位置。

  2. 使用-cp参数启动指定所有 jar 的应用程序:

    java -cp yourjar.jar;db2jcc4.jar;db2jcc_license_cu.jar your.main.Class
    

请注意,上面的示例使用 Windows 路径分隔符。如果你在Linux上运行你的应用程序,你需要使用:而不是;

如果您使用的是 Eclipse IDE,那么它包含一个将项目构建为单个 JAR 文件(导出为 Runnable JAR(的工具:

如何创建一个包含 Eclipse 中的外部库的 jar?

我尝试这样做了 4 个小时,最后我使用了 JT400.rar它的效果太棒了!

最新更新