Visual J++ (pronounced "Jay Plus Plus") is Microsoft's discontinued implementation of Java. Syntax, keywords, and grammatical conventions were the same as Java's. Microsoft discontinued support of J++ in January 2004, replacing it to a certain extent with J# and C#.
While J++ conformed to the Java language specification, Microsoft did not implement certain features of the official Sun Java implementation in its Visual J++ product line. Remote Method Invocation (Java RMI) and Java Native Interface (JNI) are such examples.
In addition, J++ implemented other extensions that were not part of Sun's Java implementation. The inclusion of callbacks and delegates for event handling further contributed to defining J++ as a completely different language merely based on an already existing design concept.
Furthermore, J++ applications did not conform to the standardized method of accessing the underlying operating system functions as any other Java application under Sun's Java SDK. In Microsoft's implementation, an underlying framework called J/Direct provided a base mechanism that allowed J++ applications to completely circumvent Java's class libraries and API media in accessing the underlying operating system. Due to this short-cut around the original Java framework, J++ applications were more efficient in taking advantage of Win32 API functions than Java applications.