从Java读取cobol数据结构

时间:2009-04-29 12:28:04

标签: java data-structures cobol copybook

有没有办法在Java程序中读取cobol数据?更具体地说,我面临以下情况:

我有一个包含固定长度数据记录的文件。数据定义以Cobol副本完成。我想到的是一个考虑到拷贝书的图书馆能够阅读这些记录。

理想情况下,应该可以根据副本信息生成基本的java类和结构。在稍后的步骤中,将解析数据线并将数据填充到那些生成的类的对象中。

您知道提供此类功能的库吗?或者任何其他技术来解决读取cobol数据的问题?


有一些商业工具可以提供此功能。然而,它们非常昂贵。您是否知道任何开源替代方案或不同工具的组合来提供整个功能?例如,cb2xml读取copybook结构并将它们转换为xml。稍后的步骤是基于cb2xml xml信息生成记录阅读器。或者使用可配置的记录阅读器。你知道cobol记录阅读器(解码器)吗?

8 个答案:

答案 0 :(得分:19)

你可以看一下JRecord - http://sourceforge.net/projects/jrecord/ 或者cb2java http://sourceforge.net/projects/cb2java/都允许您访问cobol文件 但两者都不会产生完整的课程。


2011年1月更新

自原答案:

  • JRecord继续发展。现在有一个JRecord Code generator可用 无论是独立程序还是Recordeditor。 此Code Generator将从Cobol Copybook构建JRecord JRecord代码。 请参阅RecordEditor Jrecord CodeGen
  • cb2java 的开发已停止
  • cobol2j已经写好了。没有更新 一年。
  • 还有Legstar几年没有发表任何内容

2017年8月更新

RecordEditor有一个Generate选项,用于生成 Java / JRecord 代码 来自Cobol Copybook。 有关详细信息,请参阅RecordEditor Code Generation notes

2018年1月更新

在这个问题/答案中有一些关于生成 Java~JRecord 代码的信息:

How do you generate java~jrecord code for a Cobol copybook

答案 1 :(得分:4)

是。我以前做过那个。我使用ODBC连接到COBOL文件,然后使用jdbc:odbc桥,我使用元数据信息生成类,读取数据并将其全部移植到Oracle。

Here是一个很好的教程,介绍如何使用JDBC访问元数据信息。 Here是另一个。

请记住,您不需要JDBC:ODBC桥接方法。如果您可以获得连接到Cobol DataSource的本机JDBC驱动程序,那就更好了。在这方面,我还使用了IBM本机驱动程序。不记得这个名字。很久以前。

答案 2 :(得分:2)

这似乎有一些commercial solutions。或者,您可以使用cb2xml将副本转换为XML,然后使用您需要的任何机制将XML导入Java。

答案 3 :(得分:2)

我使用了Bruce的JRecord(来自sourceforge)包来完成我的项目。学习使用它只花了几天时间,并且在我自己推出一个不那么通用的解决方案上省了几个月的工作。我高度推荐它。

答案 4 :(得分:1)

Microfocus提供了一种从Java调用OO COBOL的方法。

“您可以在OO COBOL中编写可以从Java程序调用的类,就像它们是Java类一样。您可以通过提供Java包装类来实现,它为OO COBOL类中的每个方法提供了一个函数。 Express Class和Method Wizards通过在COBOL代码的同时生成Java代码,使您更轻松。“

他们还提供了一个名为Enterprise Server的工具,它允许COBOL与Web服务进行交互。

如果您有COBOL程序A,该工具允许您将A的界面部分公开为Web服务。

当然,因为A现在有一个Web服务,任何其他类型的程序(命令行,Windows应用程序,Java,ASP等)现在也可以调用它,从而将COBOL数据传递给Java程序。

答案 5 :(得分:1)

BEA过去常常使用名为JAM的产品与大型机COBOL程序进行通信。它包括一个工具,可以读取副本并生成相应的Java POD类和数据转换代码。

我不知道这是否仍然可用,当我离开BEA时,我忘记了它。

答案 6 :(得分:1)

查看Javolution Struct

然后,您可以使用宏将COBOL数据转换为Struct

答案 7 :(得分:1)

Rational Application Developer可以读取COBOL源代码并生成Java类。生成的类具有访问COBOL数据结构的各个部分的方法。生成的类与J2EE Connector Architecture兼容。要在项目中创建类,请选择File,New,Other,然后在J2C下选择CICS / IMS Java Data Binding向导。点击下一步。选择COBOL到Java进行映射。选择您的COBOL文件。选择要生成Java类的结构,然后单击Finish,然后单击“完成”。当然,在我没有提到的方式中你可以选择许多选项。有关更多信息,请搜索J2C的帮助。