DevTrain

Autor: Tobi Ulm

Welcome Java Junkies!

Seit kurzem ist für das Microsoft .NET Framework eine Java Erweiterung erhältlich. Auf der Visual J++ Seite der MSDN kann man das JUMP Kit Beta 1 herunterladen: http://msdn.microsoft.com/visualj/jsharp/beta.asp
Damit ist es für Java Entwickler nun möglich Anwendungen zu schreiben, die innerhalb des .NET Frameworks laufen, und das beste ist man muss seine Scheuklappen nicht abnehmen und eine neue Sprache wie C# lernen. Der wesentlich Punkt dabei ist: Anwendungen innerhalb des .NET Frameworks, also nicht für eine Java Virtual Machine!
Microsoft bietet in dem 7 Mb großen Package verschiedene Tools um eine volle Integration in das Visual Studio.NET zu bieten, eine volle Integration in das Framework zu liefern und verschiedene Update Tools. Die wichtigsten Punkte seien hier kurz erwähnt:
- Visual J# .NET compiler (jc.exe)
- Visual J# .NET Binary Converter Tool (jbimp.exe)
- Klassenbibliotheken, welche die Funktionalitäten des JDK 1.1.4 bieten
- Unterstützung für die Microsoft Visual J++ 6.0 Erweiterungen inklusive der WFC
 Generell ergibt sich da die Frage wie es sich mit der Portierung ?alter? J++ Anwendungen auf J# aussieht. Es wird bei  der Installation des Packages unteranderem auch Visual Studio.NET erweitert, so dass man in der IDE volle  Unterstützung hat. Somit kann man also problemlos alte Visual J++ 6.0 Projekte öffnen und es wird ein Update  Assistent gestartet welcher den Quellcode an das Framework anpasst. Meine ersten Erfahrungen mit dem JUMP Kit  erwiesen sich als etwas holprig:
- Eine einfache Windows Anwendung mit simplen Code lies sich ohne weiteres nach J# portieren
- Eine Visual J++ Datenbankanwendung, die eine Master / Detail Darstellung liefert und das DataGrid ActiveX Control  verwendet lies sich nur schwer migrieren, da der Update Assistent nichts von ActiveX Controls hält und diese auch  nicht migriert.

Wichtig für die Portierung:
Die WFC Klassen sind ab jetzt in einem .NET assembly namesn WFC.dll untergebracht und es muss eine Referenz auf dieses Assemly gesetzt werden wenn eine VJ++ Anwendung nach J# portiert werden soll. Finden kann man die dll normalerweise hier:
C:\Program Files\Microsoft Visual J# .NET\Framework\sdk


Weitere Infos:
- Inner classes können nicht von subclasses referenziert werden, die mehr als einen Level entfernt sind.

class Granpa
{
 class Inner
 {
 }
}

class Parent extends Granpa
{
}

class Child extends Parent
{
 void foo()
 {
  new Inner();
 }
}


 o Verschachtelte anonymus innerclasses können nicht auf final stack variablen verweisen

abstract class Foo
{
 public abstract Object test();
}

class Bar
{
 void foo()
 {
  final Object o = "";
  new Foo()
  {
   public Object test()
   {
    new Foo()
    {
     public Object test()
     {
      return o;
     }
    };
    return o;
   }
  };
 }
}


- Die Anchor Eigenschaft für Controls auf einer Form in Visual J#, verhindert das kompilieren des Projektes.
- * Pre Processor Symbole werden von dem Compiler ignoriert. Wenn Sie einige Präprozessorsymbole in den  Projekteigenschaften spezifizieren, betrachtet der Compiler nur, dass welches als erstes definiert wurde. Die anderen  werden ignoriert. Die merkwürdige Sache ist, dass der Editor in Visual Studio.NET die Präprozessorsymbole richtig  anfasst (Code ist ?grayed?, wie man ihn erwarten würden) aber der Compiler nimmt nur das erste Symbol.
- Wenn eine Variable vor einer if() Bedingung erklärte wurde, aber nur im If()( Zweig verwendet wird, erhalten Sie ein  WARNING über eine unbenutzte Variable. Sie erhalten dieses WARNING nicht, wenn die Variable nur im dann Zweig  verwendet wird.  Bsp. :

int bar(boolean test)

{

    int foo = 1;

    if (test) { return 0; } else { return foo; }

}

- com.ms.jdbc.odbc.JdbcOdbcDriver()  Konstruktor ?wirft? eine
- SQLException in VJ#, jedoch nicht in VJ++.
- Visual J#.NET unterstützt J/Direct, aber es ist wirklich mehr die Javaweise für das Verwenden von .NET Plattform  Invoke Diensten.

Erfasst am: 17.10.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=638
© Copyright 2003 ppedv AG - http://www.ppedv.de