代码之家  ›  专栏  ›  技术社区  ›  paweloque

从Java中读取COBOL数据结构

  •  18
  • paweloque  · 技术社区  · 15 年前

    在Java程序中有读取COBOL数据的方法吗?更具体地说,我面临以下情况:

    我有一个文件,有固定长度的数据记录。数据定义是以COBOL文案的形式完成的。我所想的是一个图书馆,考虑到抄本可以阅读这些记录。

    理想情况下,应该可以基于字帖信息生成基本的Java类和结构。在后面的步骤中,将解析数据记录,并将数据填充到这些生成类的对象中。

    你知道一个提供这种功能的库吗?或者其他技术来处理读取COBOL数据的问题?


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

    8 回复  |  直到 5 年前
        1
  •  19
  •   Luke Machowski    5 年前

    你可以看看JRECORD- http://sourceforge.net/projects/jrecord/ 或CB2Java http://sourceforge.net/projects/cb2java/ 两者都允许您访问COBOL文件 但两者都不会生成完整的类。


    更新1月2011

    因为原始答案:

    • JRECORD继续开发。现在有一个 JRecord Code generator 可作为 独立程序或 Recordeditor . 这个 Code Generator 将建造 JRecord JRecord 代码来自COBOL文案。 请参见记录编辑器jrecord codegen
    • 在发展 CB2Java 已经停止
    • cobol2j 已经写好了。没有更新 一年。
    • 也有 Legstar 又一次,几年来没有发表任何东西

    更新AUG 2017

    这个 RecordEditor 有生成选项用于生成 Java/JREST 代码 从一本COBOL文案。 见 RecordEditor Code Generation notes 详情。

    更新1月2018

    有一些关于生成的信息 Java~jRead 此问题/答案中的代码:

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

        2
  •  4
  •   Pablo Santa Cruz    15 年前

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

    Here 是一个关于如何使用JDBC访问metada信息的很好的教程。 Here 是另外一个。

    请记住,您不需要jdbc:odbc bridge方法。如果您可以让本机JDBC驱动程序连接到您的COBOL数据源,那么它会更好。在这方面,我还使用了IBM本机驱动程序。不过别记得名字了。那是很久以前的事了。

        3
  •  2
  •   Brian Agnew    15 年前

    似乎有一些 commercial solutions 为此。或者您可以使用 cb2xml 将字模转换为XML,然后使用所需的任何机制将XML导入到Java中。

        4
  •  2
  •   user234557    15 年前

    我在我的项目中使用了Bruce的jrecord(来自sourceforge)包。学会使用它只花了几天的时间,并且在自己开发一个更不通用的解决方案时节省了我几个月的工作。我强烈推荐。

        5
  •  1
  •   rbrayb    15 年前

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

    “可以在OO COBOL中编写类,这些类可以从Java程序调用,就像Java类一样。通过提供Java包装类来实现这一点,它为OO COBOL类中的每个方法提供了一个函数。NET Express类和方法向导通过与COBOL代码同时生成Java代码,使您变得更容易。

    它们还提供一个名为企业服务器的工具,允许COBOL与Web服务交互。

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

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

        6
  •  1
  •   Darron    15 年前

    BEA以前有一个名为jam的产品,用于与大型机COBOL程序通信。它包括一个工具,它将读取文案并生成相应的Java POD类和数据转换代码。

    我不知道这个是否还能用,我离开BEA的时候就不知道了。

        7
  •  1
  •   Ernest Hill    15 年前

    Rational应用程序开发人员可以读取COBOL源代码并生成Java类。生成的类具有访问COBOL数据结构各个部分的方法。生成的类与 J2EE Connector Architecture . 若要在项目中创建类,请选择“文件”、“新建”、“其他”,然后在J2C下选择CICS/IMS Java数据绑定向导。单击“下一步”。选择COBOL到Java进行映射。选择您的COBOL文件。选择您希望生成Java类的结构,然后单击“完成”,然后转到那里。当然,在我没有提到的过程中,您可以选择许多选项。有关更多信息,请搜索J2C的帮助。

        8
  •  1
  •   nkr user2915097    6 年前

    看一看 Javolution Struct .

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