The J# programming language is a transitional language for programmers of Sun's Java and Microsoft's J++ languages, so they may use their existing knowledge and applications on Microsoft's .NET platform. J# can work with Java bytecode as well as source so it can be used to transition applications that use third party libraries even if their original source is unavailable. It is notable for being developed outside the United States. It was developed by the Hyderabad-based Microsoft India Development Center at HITEC City in India. The success of this software project led to Microsoft pouring many millions into expanding their Indian facilities.


Unlike Java, the J# editor in Visual Studio or the standalone Visual J# Express Edition can only be used to create binary based applets and applications for Windows. It can be used to make executable applications, console applications and classes (*.dll). All Visual J# Java based files (before compiling) are .JSL ( Java Source Language) files.


J# does not compile Java-language source code to Java bytecode (.class files), and does not support Java applet development or the ability to host applets in a web browser, although the .NET Framework does have its own system for browser embedding, so presumably a wrapper could be written. Finally, Java Native Interface (JNI) and Raw Native Interface (RNI) are substituted with P/Invoke, J# does not support Remote Method Invocation (RMI).


J# is generally not considered to be a language on par with C# or VB.NET, and does not have the same level of support, samples, or updates as the other languages do. This fact notwithstanding, J# is a usable .NET language and has access to all the CLR features.


The Microsoft J# product team recently made two important announcements on the future of J#:


That Microsoft would produce an updated version of Visual J# 2.0, including a 64-bit redistributable version, called J# 2.0 Second Edition to meet customer demand for 64-bit runtime support. Microsoft released Visual J# 2.0 Second Edition on 18th May, 2007.


Retirement of the J# language and Java Language Conversion Assistant from future versions of Visual Studio, since the existing J# feature set largely meets customer needs and usage of J# is declining. The existing version shipping with Visual Studio 2005 will be supported until 2015 as per the product life-cycle strategy.


ACES Consulting Group - Microsoft Partner