Is COBOL for JVM really pure JAVA?

[Migrated content. Thread originally posted on 01 February 2011]

At the moment, I'm testing VisualCobol for Eclipse and JVM. Development and debugging within Eclipse worked fine, and so I wanted to export the whole project and run the application outside eclipse.

I exported my class files and also cesjni.jar, mfcobolpure.jar, mfjtypeinfo.jar, mfcobol.jar, mfcobolrts.jar. But that was not enough. When I started my application, I got the following message:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no cblrtsm in java.library.path

I added the bin-directory of my VisualCobol-installation to the PATH-variable and it worked.

If it is neccessary to deploy dlls along with my *.class-files my application won't runnable on different platforms.

Is there any way to get rid of cblrtsm.dll?
  • Verified Answer

    Many thanks for taking the time to post this excellent set of questions. I will do my best to help out with all of them.

    In the version released with Visual COBOL R3, COBOL is compiled to pure JVM byte code. However, the resulting code uses the native Micro Focus runtime and file handlers for some functionality. To solve your specific problem you will need to ensure that these dlls are on your path so that the COBOL program can access them.

    The technology we are using for the compilation of COBOL to bytecode is more than capable of delivering a pure JVM solution, i.e. with no need for dlls, with a little more development. We have done so for internal experimental projects like the COBOL on Android of which you may have heard.

    It is great that you have asked this question and I would be more than interested in any more thoughts you have in this area. It is our users which guide our direction.

    Best wishes - AJ

    Dr Alexander J Turner - Software Systems Engineer Senior Principal @ Micro Focus