Minimize Ja.NET Blogs
Dec 4

Written by: Dave
12/4/2008 3:05 AM

Good morning!

Well, I've finally gotten around to posting my first blog on Ja.NET SE. I have been a bit busy, as you can imagine: Heads down getting some solid releases done and posted. :) Unfortunately, the blog's been neglected til now. But here I go...

As a first post, I think it's appropriate to describe what Ja.NET SE is, and what I hope, in the near future, with your help, it will become.

The best way to describe it is to draw an analogy to an existing Microsoft product, Visual J#. Visual J# is a Java development kit and an add on to Visual Studio 2005. It enables developers to develop .NET software using a slightly modified Java programming language. It comes with  Java 1.1+ class libraries layered on top of the .NET CLR/Framework and a compiler that generates .NET byte code (MSIL) instead of Java .class files. The compiler packages up all the classes in a compilation into a .NET assembly, and will generate either a .EXE or .DLL based on your command-line options. The classes, assemblies, and MSIL generated by the compiler are compatible with the rest of .NET, so you can easily incorportate what it generates with other .NET programming languages, such as C# or VB.NET. The intended use of the product, at least in Microsoft's eyes, is as a development tool to create a bridge for those who have developed applications/libraries in Visual J++ (remember that!), and need to move them to the .NET platform.

If you look closely at Visual J#, you will see it hasn't evolved much over the years beyond when it was first released. The compiler and class libraries have stayed pretty much at the same level (i.e., outdated), for the most part, even though Sun has continued to enhance Java and the class libraries well beyond what J# supports. An while you can certainly create new Java code for .NET using J#, you clearly are not able to easily reuse/port any "current" Java code to .NET, due to J#'s limited/old class library and compiler support. And, since MS has announced the end of life for J#, and discontinued development on it, it is pretty clear they have no interest in enabling "real" Java development on .NET.

So, in a nutshell, what is Ja.NET SE? It is simply a Java JDK/JRE for .NET, much like J# is intended to be. The main difference is, it is open source, free, and based on a current version of Java (well, Java 5 current anyway :-)). Now it is a bit different from J#, in that it is really a "hybrid" Java JDK/JRE, in that it doesn't just target the CLR. You see (i'll do another blog on this soon), i have based the development of  SE on Apache Harmony, an increasingly popular (e.g. Google's Android class libraries are based on Harmony), highly modular, open source Java 5 platform implementation, and I bundle the binaries for that platform in the Ja.NET SE distribution as well. So this gives you the ability compile (i.e javac) and run (i.e. java ...) Java based applications on the CLR as well as the included Harmony Java platform. 

So, there you have it!  Now, I'm sure I've probably raised more questions than answers at this point, but I have many blogs yet to write. :) Suffice it to say, I've had good success with SE so far as I'm able to build and run JUnit, Xerces, Ant, and other OSS on .NET without any code changes to those distributions.  Again, I'll blog more on this later.

But, there is still a LOT to do!  And that's where you can come in. I won't beg, but... I could use a helping hand.... I do think there is a lot of promise here... :-)

More in a bit!

Dave

Tags:

Your name:
Title:
Comment:
Add Comment    Cancel  
Minimize Search