Discussions

News: An Introduction to IKVM: Java on .NET

  1. An Introduction to IKVM: Java on .NET (8 messages)

    IKVM can be described as a Java Virtual Machine for the .NET CLR. But that brief statement hides a whole new world -- IKVM is the first serious option for in-process Java-to-.NET interoperability. This article introduces us to IKVM, how to install it, how it works, and how to use it.

    Conclusion
    IKVM breaks down the barriers between Java and .NET, probably two of the most significant language platforms of the day. In the sometimes adversarial atmosphere between the two communities, this can be viewed with concern by many Java developers, since the barrier of interoperability against a large installed library base is not longer sufficient to protect your skills. However, one can also see it as an opportunity, increasing the range of target platforms on which the Java programmer may utilize his skills. I think IKVM eventually makes language bigotry the loser, and the winner is that old cliché -- "the right tool for the job."
    Read An Introduction to IKVM

    Threaded Messages (8)

  2. What about the other direction?[ Go to top ]

    This looks interesting, but raises a couple questions:
    1. Is there a tool out there that does the reverse; compiles MSIL to Java bytecode, including stubs for Java/.NET libraries? Since the JVM appears (to me at least) to be more mature than the CLR, this could be useful, depending on what code you want to integrate.
    2. Can we finally write Java code that has a decent rich user interface for Windows, by using the .NET Windows Forms from Java applications that connect to J2EE servers? Or should we stick with web services interoperability for that and write the rich client in VB.NET?
  3. .net -> jvm[ Go to top ]

    Hi Charles,

    Portable dotNet has an (unifinished) compiler backend that emits java bytecode instead of IL. There are commercial implemenetations that allow running of IL on JVMs.

    One of my pet projects is to try out some nice binary rewriting tools[1] ocassionally to compile pnet itself to java bytecode and run it on a JVM. I've got a 100 KLOC theorem prover written in C crossbuilt-to-bytecode running happily on a JVM without much work beside tweaking the makefiles a little bit.

    cheers,
    dalibor topic

    [1] cross compile to mips as native code, from mips to bytecode.
  4. Re: What about the other direction?[ Go to top ]

    I just came across a tool from IBM that lets you host Windown Form controls in Eclipse. I haven't worked with or tested it, yet, so I don't know how good it is.

    (On our recent project we did almost exactly what you described: we have a Windows Forms client written in C# that connects to a J2EE server using web services.)
  5. That sounds interesting[ Go to top ]

    Could you tell us a little bit more about the project (number of forms, number of web services, business transaction loads, compatibility problems, etc.)
  6. 2. Can we finally write Java code that has a decent rich user interface for Windows, by using the .NET Windows Forms from Java applications that connect to J2EE servers? Or should we stick with web services interoperability for that and write the rich client in VB.NET?
    Charles,

    I think .NET Remoting is the tool we can use when .NET presentation layer
    has to deal with the J2EE applications. Read that it has better speed and
    efficiency when it comes to large datasets than XML web services.

    Check out
    .NET/Java Interoperability: Apply the Proper Tool for the Job
    By Kenn Scribner
    @ http://www.developer.com/java/ent/article.php/10933_3351451_1

    Krishna
  7. I think .NET Remoting is the tool we can use when .NET presentation layerhas to deal with the J2EE applications. Read that it has better speed and efficiency when it comes to large datasets than XML web services
    .NET Remoting is like RMI - it's binary only, hence the performance. No interop there AFAIK.
  8. AOP[ Go to top ]

    Is IKVM also capable of handling all the fancy AOP, CGLIB stuff that is used in Hibernate, Spring etc?
  9. But who cares????[ Go to top ]

    90something% of java development now adays is serverside any way. This tool will not make EJB's mysterously run on M$ servers. So it doesn't matter. If you want to write a java solitaire program and make it run on .NET this is the tool for you, however if want to run a serious enterprise app on windows, well all the major App servers run just fine on Windoze, under -tada- Java. You need JBOSS, BEA, Websphere, iPlanet or........ and of course the appropriate JVM.


    Move along nothing to see here.........