Visual J

Visual J++ (pronounced "Jay Plus Plus") was Microsoft's specific implementation of Java. Syntax, keywords, and grammatical conventions were the same as Java's. Microsoft discontinued support of J++ in January 2004,[1] replacing it to a certain extent with J# and C#.

J++ compared to Sun's Java implementation

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.[2][3]

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.

J++ applications using these features could not be run on Sun's Java SDK, but the Kaffe project developed extensions which made it possible to run J++ applications with these features on their open sourced JVM. However, these extensions (implemented by TransVirtual under Microsoft funding) were not widely used, and J++ applications still needed to be compiled on Visual J++ before being able to be run by Kaffe.[4][5]

Visual J++ supported ActiveX.[6]


The Windows Foundation Classes (WFC) encapsulated the Microsoft Win32 platform API and DHTML object models into a unified class library. WFC was primarily designed for creating graphical user interfaces for Java applications on Windows.

Sun's litigation against Microsoft

Sun Microsystems had originally licensed Java to Microsoft but later initiated litigation against Microsoft for trademark violation. (Sun's trademark license for usage of the Java brand insists that all implementations be "compatible".)

Some observers have remarked that this was deliberate from Microsoft, in an attempt to at least slow the advance of Sun's Java technology.[7][8]

The failure of the MSJVM to pass Sun's compliance tests was a large factor in the initial lawsuit. On January 24, 2001, this and all other outstanding Sun-Microsoft lawsuits were settled as part of a wide-ranging agreement between Sun and Microsoft.[9] The settlement document outlined that Microsoft also could not advance J++ beyond its mirrored implementation of Java, version 1.1.4. This effectively ended J++ and further updates. As well, the MSJVM had to cease to be distributed and is no longer available for download.

However, due to settlement of outstanding litigation, Microsoft was allowed further to update the MSJVM to fix security holes and any problems relating to the security threat. Microsoft has since ceased support for the MSJVM on December 31, 2007.[10]

The technology of J++ was eventually recycled, and survived for a while, as part of the Microsoft .NET platform and the J# programming language.

Visual J++ - The IDE

Visual J++ was also the name of the Integrated Development Environment (IDE) for J++ and provided many tools and utilities to help J++ programmers fully leverage the Win32 API.

Visual J++ is no longer available for distribution, but it was part of the Microsoft Visual Studio product line. Visual Studio 6.0 was the last release to include J++.

Visual J#

Visual J# (pronounced "Jay Sharp") is a Microsoft language whose syntax is close to Java, part of the .NET Framework. Visual J# is part of the Microsoft Visual Studio .NET product suite and is designed to help developers and programmers migrate from J++ (or Java) to the .NET Framework.

Microsoft later developed the C# ("C Sharp") language as the primary language for the .NET platform, which was in many ways influenced by Java; subsequently the .NET Framework shares many ideas in common with Java. Much like Java, C# is compiled to a type of bytecode (called CIL), and runs on top of a virtual machine called the Common Language Runtime in .NET. Visual Studio 2005 was the last release to include J#.


External links

  • Product Features in Visual J++ - By Edition
  • Microsoft Visual J#
  • Microsoft Java Web Site
  • Sun's Agreement with Microsoft
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.