Top Qs
Timeline
Chat
Perspective
J/Direct
From Wikipedia, the free encyclopedia
Remove ads
Remove ads
J/Direct was a technology included in some versions of Microsoft Java Virtual Machine, which allowed direct calls into the Windows API. J/Direct was specific of Microsoft's Virtual Machine, in replacement of the standard Java Native Interface (JNI).
A Java program which used J/Direct would not run on platforms other than Microsoft Windows.
The release of J/Direct (along with AFC and WFC), was part of an effort by Microsoft to gain leadership on the growing Java community.[1]
Since this destroyed one of the main advantages of Java, its cross-platform nature, J/Direct was often seen as an attempt by Microsoft to undermine Java's cross-platform capabilities, and an example of the tactic of embrace, extend and extinguish.[2]
After the drop by Microsoft of their specific Java virtual machine, and the switch to the .NET environment, J/Direct was no longer maintained.
Remove ads
Architecture
J/Direct used a kind of annotation in Java code to make the link between Java and Windows functions. As annotations did not exist in Java when J/Direct was designed, Microsoft used a special syntax in Java comments.
For example, to declare the GetSysColor
function in the User32 API:[3]
/** @dll.import("USER32", entrypoint="GetSysColor") */
static native int getSysColor(int nIndex);
The Microsoft Java implementation already provided a pre-defined package which provided a set of pre-defined classes bound to the User32, Gdi32.dll, and Kernel32.dll APIs.[4]
Additionally, the Microsoft VM used some built-in rules to be able to bind automatically the Java code to some Windows API functions. For example, it chose automatically between ANSI and Unicode versions of Windows API functions.[5]
Remove ads
See also
- Java Native Interface
- Java Native Access
- P/Invoke, the equivalent .NET API
References
External links
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads