Pure Native
Products
Download
Support
Partners
Press
Company

NewJ Common Questions
Overview | Features | FAQ | Free to Develop | Purchase

What is NewJ?
NewJ is a 100% native implementation of the core Java API and language features in C++, for C++. It is intended for Java/C++ developers who wish to use the Java API to deploy 100% native applications where performance or executable size are crucial factors. It is also well suited for Java developers who are learning C++ or maintaining existing C++ applications.

Do native applications developed with NewJ require a JRE?
No. Native applications developed with NewJ do not require a JRE or VM of any sort for development or deployment. However, NewJ also includes optional support for JNI through the NewJNI libraries. Applications which make use of these JNI features require a JRE for development and deployment just as other JNI environments do.

Does NewJ support automated Java-to-C++ conversion tools or wizards?
An automated Java-to-C++ translation tool called NewJ Equals C++ Preview Edition is now available as a separate download. However, the Preview Edition is limited to translating classes in the packages for SWT and SWT Examples. NewJ Mobile, NewJ Desktop, and NewJ Library themselves do not presently include general-purpose automated Java-to-C++ translation tools or wizards. If you would benefit from automated Java-to-C++ translation tools or wizards, please contact us to convey this. Additionally, PureNative Software provides consulting services to assist with Java-to-C++ translation projects, Java/C++ parallel development, and Java/C++ interoperability.

Does NewJ support Visual C++ 9.0 in Visual Studio 2008?
Yes. NewJ includes application wizards (AppWizards) and tools which are fully integrated with Visual C++ 9.0 compiler and the Visual Studio 2008 IDE.

Does NewJ support Visual C++ 8.0 in Visual Studio 2005?
Yes. NewJ includes application wizards (AppWizards) and tools which are fully integrated with Visual C++ 8.0 compiler and the Visual Studio 2005 IDE.

Does NewJ support Visual C++ 7.1 in Visual Studio .NET 2003?
Yes. NewJ includes application wizards (AppWizards) and tools which are fully integrated with Visual C++ 7.1 compiler and the Visual Studio .NET 2003 IDE.

Does NewJ support Visual C++ 6.0 in Visual Studio 98?
Yes. NewJ includes application wizards (AppWizards) and tools which are fully integrated with the Visual C++ 6.0 IDE. (Screen shots.)

Is there a version of NewJ for Linux, UNIX, or Macintosh (Mac OS X)?
No, NewJ Desktop and NewJ Library presently support Windows operating systems (Windows XP/2003/2000/ME/98/95), and NewJ Mobile supports Windows CE (Windows Mobile and Pocket PC). If you would like to see NewJ on other operating systems, please convey your platform needs to us so we can plan accordingly.

Does NewJ support JNI and interoperability with JREs?
Yes, NewJ Library and NewJ Desktop include support for JNI. They also include NewJNI which is built on standard JNI.

What is NewJNI?
NewJNI is a natural C++ interface to JNI and JREs. It is it built on standard JNI. NewJNI makes it possible to instantiate and call Java objects as easy as calling C++ classes. NewJNI creates C++ proxy classes which correspond to compiled Java classes, such as the standard Java API, third-party libraries, and your own classes. NewJNI does not require source code to the underlying Java classes.

Is NewJNI "open"?
Yes. NewJNI is an open technology. It is documented in the NewJ for C++ Developer's Guide and on the PureNative Software web site. Additionally, the entire source code for the NewJNI libraries has been made available. Source code contributions, such as bug fixes, improvements, and new features, are welcome from contributors who are legally free to do so.

Is NewJ based on Sun's implementation of the Java API?
No. The NewJ implementation of the core Java API is completely independent and is not based on Sun's implementation in any way.

How well does NewJ conform to the Java API specification?
NewJ is constantly tested against C++ versions of the Mauve open source test suite for Java. NewJ exhibits high test scores for Mauve. If you wish to have more detailed test results, please contact us.

Does NewJ support Java threads?
Yes.

Does NewJ support AWT?
Yes. NewJ Mobile and NewJ Desktop include a 100% native C++ implementation of AWT. Its AWT implementation requires much less memory and system resources than existing JRE-based implementations. Furthermore, NewJ Mobile and NewJ Desktop's AWT implementation does not require a JRE for development or deployment.

Does NewJ support SWT?
Yes. You need to obtain SWT Camp, which is a separate download. Presently, SWT Camp requires that you use NewJ Mobile or NewJ Desktop instead of NewJ Library.

Does NewJ support Swing?
No. NewJ does not presently include a 100% native C++ implementation of Swing. If you would benefit from NewJ including a 100% native C++ implementation of Swing, please contact us to convey this. On the other hand, NewJNI fully supports Swing by calling through JNI to the Swing packages provided by the JRE or otherwise installed on the client.

What is the difference between NewJ Library and NewJ Desktop?
NewJ Desktop includes support for AWT and is intended for developing GUI applications. On the other hand, NewJ Library does not include AWT support and is intended for developing headless or non-visual applications.


NewJ is neither a product of or nor is endorsed by Sun Microsystems, Inc. NewJ implements the java.lang, java.io, and java.util packages according to the Java 2 Platform, Standard Edition, v1.2.2 API Specification as published by Sun Microsystems, Inc. Behavioral considerations of the NewJ native library implementation can be found here.

Protected by U.S. Patent No. 7,346,897