J / Direct - J/Direct

J / Direct was een technologie die in sommige versies van Microsoft Java Virtual Machine was opgenomen en waarmee directe oproepen naar de Windows API mogelijk waren . J / Direct was specifiek voor Microsoft's Virtual Machine, ter vervanging van de standaard Java Native Interface (JNI).

Een Java-programma dat J / Direct gebruikte, zou niet op andere platforms dan Microsoft Windows kunnen worden uitgevoerd .

De release van J / Direct (samen met AFC en WFC ) was onderdeel van een poging van Microsoft om leiderschap te verwerven in de groeiende Java- gemeenschap.

Aangezien dit een van de belangrijkste voordelen van Java, het cross-platform karakter ervan, teniet deed, werd J / Direct vaak gezien als een poging van Microsoft om Java's cross-platform capaciteiten te ondermijnen , en een voorbeeld van de tactiek van omarmen, uitbreiden en uitdoven .

Na de drop door Microsoft van hun specifieke Java Virtual Machine en de overstap naar de .NET- omgeving werd J / Direct niet meer onderhouden.

Architectuur

J / Direct gebruikte een soort annotatie in Java-code om de koppeling tussen Java- en Windows- functies te maken. Omdat annotaties niet bestonden in Java toen J / Direct werd ontworpen, gebruikte Microsoft een speciale syntaxis in Java-opmerkingen.

Om de GetSysColor functie bijvoorbeeld in de User32 API te declareren :

/** @dll.import("USER32", entrypoint="GetSysColor") */
  static native int getSysColor(int nIndex);

De Microsoft Java-implementatie leverde al een vooraf gedefinieerd pakket met een set vooraf gedefinieerde klassen die waren gebonden aan de API's User32 , Gdi32.dll en Kernel32.dll .

Bovendien heeft de Microsoft VM enkele ingebouwde regels gebruikt om de Java-code automatisch aan bepaalde Windows API- functies te binden . Het koos bijvoorbeeld automatisch tussen ANSI- en Unicode-versies van Windows API- functies.

Zie ook

Referenties

Externe links