快速浏览表明,IBM、Microfocus和GNU COBOL针对Java和COBOL互操作的产品都是不同的API。然而,在维基百科上目前有这样一句话:2002年的规范";改进了与其他编程语言和框架环境(如.NET和Java(的互操作性">
那么,在这方面什么是标准化的呢?(我没有该规范的副本,因为我刚刚开始学习COBOL,并且希望探索Java和COBOL互操作,这是我目前的一种爱好(。
这个问题有一个明确的答案:否。
添加了不同的内容,特别是在2002年的标准中,但在后来的标准中也添加了一些内容,这些标准允许使用符合标准的API来实现Java互操作性,但标准中与非COBOL交互的细节始终是依赖于处理器或实现的。
的定义实际上相当多,脑海中浮现的东西:
ENTRY-CONVENTION
和CALL-CONVENTION
- 用户定义函数
- 具有类、对象、方法、工厂等的面向对象COBOL
- 函数和调用原型
- 为
NATIONAL
和其他类型定义的编码
作为问题的一部分,可能会产生误导:GnuCOBOL还没有用于与Java交互的API。
如果您想编写可移植COBOL<->;Java代码可以使用两种方法。
第一:使用";C";由JNI Java提供的API。这将起作用";相当好";如果COBOL环境可以与";C";(对于大多数实现来说可能是这样(
查看Java中的Call c函数以了解详细信息
警告:应该注意JNI原则,比如从Java调用的COBOL不应该STOP RUN
(或者在Java端没有机会捕获的情况下异常终止(。
第二:不要使用直接接口,而是在COBOL和Java之间进行通信,例如使用REST服务。
因为这也是问题的一部分:如果你想更多地了解COBOL(作为一种语言,不一定由"实现者X"支持(,那么COBOL标准是一个很好的资源
在大多数情况下;足够的";只要抓住当前的";草稿";下一个COBOL标准是,您可以在COBOL工作组的ISO文档页面上访问这些标准[旧版本通常在标准发布后消失,当下一个标准准备进行首次公开审查时,会出现新版本]。