support: Customer Portal
Focused on delivering choice, investment protection and flexibility to organizations with valuable COBOL assets

Veryant Knowledge Base
Home > All Categories > isCOBOL General > How do I compile for compatibility with older versions of Java?
Question Title How do I compile for compatibility with older versions of Java?

When I run my program with an older version of the Java runtime environment I get the following error:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file

What can I do to resolve this?
How can I see the version number in the .class file?


You can use the -jo compiler command line option in order to specify options to be passed to the Java compiler such as:
"-source" and "-target".

For example, to compile for compatibility with Java 1.4.2 add the following to your compile command line

-jo="-source 1.4 -target 1.4"

To compile a program named MYPROG.cbl:

iscc -jo="-source 1.4" MYPROG.cbl

(you can omit "-target 1.4" since it is the default when specifying "-source 1.4")

Here is the documentation for the -source and -target options from Java

-source release
Specifies the version of source code accepted. The following values for release are allowed:
The compiler does not support assertions, generics, or other language features introduced after JDK 1.3.
The compiler accepts code containing assertions, which were introduced in JDK 1.4.
The compiler accepts code containing generics and other language features introduced in JDK 5.
Synonym for 1.5.
This is the default value if you are compiling with JDK 6. No language changes were introduced in Java SE 6. However, encoding errors in source files are now reported as errors, instead of warnings, as previously.
Synonym for 1.6.
This is the default value. The compiler accepts code with features introduced in Java SE 7.
Synonym for 1.7.


-target version
Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are 1.1 1.2 1.3 1.4 1.5 (also 5) and 1.6 (also 6).

The default for -target depends on the value of -source:

  • If -source is not specified, the value of -target is 1.6
  • If -source is 1.2, the value of -target is 1.4
  • If -source is 1.3, the value of -target is 1.4
  • For all other values of -source, the value of -target is the value of -source.


In order to check the version number in a .class file you can use the javap utility that is distributed with the JDK. For example, the following command will report the version of a program named MYPROG.

javap -verbose MYPROG | grep major

or run "javap -verbose MYPROG" and the version numbers will be reported in the first 5 lines. 

Note that MYPROG.class must be in the class path. You can specify a class path with javap -cp.

The major version number will be 48 for Java 1.4.2, 49 for Java 5, 50 for Java 6, and 51 for Java 7.
Authored by: Veryant Support This question has been viewed 30138 times so far.
Click Here to View all the questions in isCOBOL General category.
File Attachments File Attachments
There are no attachment file(s) related to this question.
How helpful was this article to you?
User Comments User Comments Add Comment
There are no user comments for this question. Be the first to post a comment. Click Here
Related Questions Related Questions
  1. How do I migrate indexed files to a format that is supported by isCOBOL?
  2. How do I resolve "code too large for try statement" errors?
  3. What Micro Focus library routines are supported?
  4. How do I prevent hackers from decompiling Java class files to reverse engineer my COBOL application?
  5. Do I need to worry about the compile warning "Note: uses unchecked or unsafe operations?"
  6. When can I get the " Permission denied:connect" message? And how can it be avoided?
  7. Is there currently a way to debug COBOL and Java source together?
  8. How can I read an Excel spreadsheet from COBOL?
  9. How do I create a desktop shortcut icon to launch my program?
  10. What is the best way to control Microsoft Word?
  11. How do I set up isCOBOL to access Vision files?
  12. How do I increase the maximum Java heap size when compiling?
  13. Should I use JISAM or isCOBOL ISAM Server (c-treeACE)?
  14. Where can I obtain a copy of the ANSI 2002 COBOL standard?
  15. How would I create my own CBL_ALLOC_MEM and CBL_FREE_MEM routines?
  16. Does SET ADDRESS OF X TO Y work?
  17. What tools are available for automated functional (regression) testing of a COBOL application?
  18. How do I resolve a compile error on PIC X(2) USAGE COMP-5?
  19. How can I package my application and execute it in a JAR file?
  20. How do I get my screens to be the same size and spacing as when I run with ACUCOBOL?
  21. How can I use the F10 key in my application without it changing the keyboard focus?
  22. What is the recommended method for specifying isCOBOL framework properties?
  23. How do I turn on debug trace to produce a log file?
  24. Does isCOBOL work with Flexus COBOL sp2?
  25. Does isCOBOL support C$XML or other XML interfaces?
  26. How do I change the icon in the upper left corner of the Window?
  27. Where can I find more information on A$ENCRYPT and A$DECRYPT?
  28. How do I use conditional compilation?
  29. What are the defaults for the DATE-ENTRY control DISPLAY-FORMAT property and format styles?
  30. How do I select 11x17 paper size using WIN$PRINTER?
  31. What is the behavior difference of STOP THREAD?
  32. Why do I get a compile error "--S: Invalid open mode" on an OPEN I-O of an ORGANIZATION LINE SEQUENTIAL file?
  33. What are the key technical advantages of isCOBOL?
  34. Why do I get the error message "Native call not found" and how do I fix the problem?
  35. What compile option should I use for ICOBOL compatibility?
  36. How do I specify properties or a properties file on the command line?
  37. Can Veryant recommend a good Web site to find 3rd party JavaBeans?
  38. How do I compile fixed (ANSI) format source that COPYs terminal format source or vice versa?
  39. What is the easiest and/or best way to convert a legacy text-based user interface to a web front end?
  40. How do I print to a spooler in Unix?
  41. Can isCOBOL access a DLL or .so that is in a JAR file?
  42. How do I set iscobol.file.index.FileName with variable file name assignments?
  43. Sending SMTP mail
  44. What algorithm does isCOBOL use to load framework properties (runtime config variables)?
  45. How would I create my own CBL_CHECK_FILE_EXIST routine?
  46. Is there any equivalent to COPY RESOURCE?
  47. How do I write my own replacement for a C$ library routine?
  48. How do I specify which file status codes I want to use?
  49. Where can I learn more about Classpath, the Java class loader, JDK tools and utilities?
  50. How does a program detect at runtime whether it is running standalone GUI, thin client or with Web Direct 2.0?
  51. Is the isCOBOL 2009 SP1 release intended to deploy mainframe applications over the cloud? Or is it an integration mechanism for bringing in cloud data and apps?
  52. Does isCOBOL APS run on z/OS?
  53. How do I configure file locations with environment variables?
  54. Does isCOBOL run on Linux on System z?
  55. Is your runtime library backward compatible?
  56. I've heard there is a problem passing pointers to C functions. What is it?
  57. How do I get more information when I get java.lang.reflect.InvocationTargetException?
  58. Can I use directory paths in CALL names?
  59. What should I use for USAGE HANDLE items instead of NULL?
  60. Can you derive isCOBOL object classes from Java and vice versa?
  61. What is the best way to profile an isCOBOL program?
  62. How can I make my isCOBOL program to be called instead of a C routine when both have the same name?
  63. Is there a way to have single set of source code that will compile with both ACUCOBOL and isCOBOL?
  64. How do I suppress multiple reserved words with the -rw compiler option?
  65. Why do I get the error java.lang.NoClassDefFoundError: com/iscobol/rts_n/StopRunException?
  66. Can the file system (iscobol.file.index) be set programmatically?
  67. How can I tell what changes were made in the isCOBOL latest update?
  68. Is there any way to use isCOBOL with SCO 5.0.6 (JDK 1.3)?
  69. Does isCOBOL support C$REDIRECT?
  70. Does isCOBOL support Crystal Reports or other Report Writers?
  71. Is isCOBOL backward compatible?
  72. How do I determine what properties are set?
  73. How can I monitor a jvm started on a remote computer box?
  74. How can I avoid the "java.lang.OutOfMemoryError: PermGen space" error?
  75. Why do I get the error message "java.lang.ArrayIndexOutOfBoundsException" ?
  76. Why do I get the error message “java.lang.UnsatisfiedLinkError: no ### in java.library.path?
  77. What does mean the error NO X11 DISPLAY?
  78. Can I call an RMCobol program passing parameters to it?
  79. Why do I get the error message "java.lang.NullPointerException" ?
  80. How can I avoid, in execution, the "java.lang.OutOfMemoryError: Java heap space" error?
  81. I still get the error : "Missing License: The license key is missing, invalid or has expired!" I can't figure out why
  82. Why do I get the error "Could not load the main class" ?
  83. How do I resolve the error "java.lang.NoClassDefFoundError" or "java.lang.ClassNotFoundException"?
Article Information Additional Information
Article Number: 57
Created: 2009-08-31 6:00 PM
Rating: 1 Star
Article Options Article Options
Print Question Print this Question
Email Question Email Question to Friend
Export to Adobe PDF Export to PDF File
Export to MS Word Export to MS Word
Bookmark Article
Subscribe to Article Subscribe to Article
Search Knowledge Base Search Knowledge Base

  Home  |   About Us   |  Contact  |   Legal   |  Privacy   |  Press

© Veryant - All Rights Reserved
Veryant and isCOBOL are trademarks or registered marks of Veryant in the United States and other countries. All other marks are the property of their respective owners.