• Saves Valuable Time
  • Trusted Accuracy for 12 Years
  • 15-Day Money-Back Guarantee

C++ to Java Converter

C++ to Java Converter produces great Java code, saving you hours of painstaking work and valuable time.

Try the Free Edition

  • Free
  • High-quality conversion
  • Convert folders up to 1000 lines
  • Convert snippets up to 100 lines

Purchase the Premium Edition

  • $129 US (15-day money-back guarantee)
  • High-quality conversion
  • Unlimited folder conversion length
  • Unlimited snippet conversion length

10 Second Overview

*Scroll right to see C++ to Java Converter in action!

Key Benefits

The Most Comprehensive Converter


Your existing code is left completely intact.  The new Java files are written to the new location that you specify.

Our accuracy is the highest in the industry, but there will be significant adjustments required for all but the most trivial conversions.  C++ code is much more complex than Java code, so there are no direct equivalents for many aspects of C++.  Read the rest of the FAQ to get an idea of a few things that are not converted.  C++ to Java Converter is intended to reduce the amount of work you'll have to do to convert code to Java, but it is just the first step.  Code that is heavily dependent on pointer manipulation is better left in C++.

C, C++, C++11, C++14, and C++17.

C++ to Java Converter converts function pointer typedefs to functional interfaces.

C++ to Java Converter does not convert MFC or ATL resources.

C++ to Java Converter converts most references to std::vector, std::map, std::set, std::list, std::queue, and std::stack.  A few methods of these containers that have no equivalent are not converted.

  • Most C/C++ library function calls are not converted.  However, we do convert a subset of the C-based string, keyboard I/O, math, and utility function calls, and some of the C++ keyboard I/O methods, STL-based string class methods, and STL containers (std::vector, std::map, std::set, std::list, std::queue, and std::stack).
  • Some pointer and address manipulation may remain in the converted code.
  • Multiple inheritance is not converted since it is not available in Java.
  • Most operator overloads are converted, but a few operator overloads cannot be converted and are marked with a comment.
  • Some function pointers cannot be converted to Java. Only function pointer typedefs are converted to Java functional interfaces.
  • Since Java lacks a preprocessor, all code dependent on conditional compilation needs to be refactored so that the functionality can be achieved in other ways.  You can avoid this if you choose to target the NetBeans preprocessor (C++ to Java Converter includes an option for this).
  • C++ templates are converted to, but are only roughly equivalent to, Java generics.  These may require further attention.
  • Bit-by-bit copying of objects via the assignment operator is not the default in Java.  We attempt to detect these cases and convert the assignment to a call to either the copy constructor (if used in a variable initialization) or the converted assignment operator overload (which is converted to a 'copyFrom' method) and also provide a 'Warning' comment.
  • Java does not allow embedded assembly instructions.  These are marked with a comment.
  • Types cannot be declared within methods in Java.  These are marked with a comment.
  • There is no equivalent to friend functions or friend classes in Java.  These are marked with a comment.
  • Unions and bit fields have no elegant equivalent in Java.  Unions are converted to classes and marked with a comment.

Additional Resources

Java and C++ equivalents chart

C++ to Java conversion tips

Copyright © 1997 – 2017 Tangible Software Solutions Inc.