在独立JAR应用程序中集成DB2许可证

时间:2018-05-29 07:26:06

标签: java jdbc db2

我开发了一个用于读取数据库表的小实用程序,并且我试图访问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

连接网址为jdbc:db2://<server>:<port>/<schema_name>:progressiveStreaming=2;,应该是Type 4连接。我正在使用Universal DB2 Driver。我不知道包含许可证罐是否足以使事情有效或者我是否需要更多东西,例如加载许可证或类似操作。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

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

当您在命令行中使用java -jar ... can't specify additional jarfiles启动应用程序时。

所以你有两个选择:

  1. 在构建应用程序的jar文件时,在MANIFEST.MF中包含db2jcc_license_cu.jar。然后,您需要将其放入与清单中引用的其他jar文件相同的位置。

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

     
    java -cp yourjar.jar;db2jcc4.jar;db2jcc_license_cu.jar your.main.Class
    
  3. 请注意,上面的示例使用Windows路径分隔符。如果您在Linux上运行应用程序,则需要使用:而不是;

答案 1 :(得分:0)

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

How to create a jar with external libraries included in Eclipse?

答案 2 :(得分:0)

我花了4个小时试图做到这一点,最后我使用jt400.rar,效果很好!