Article · Wikipedia archive · Last revised Jul 13, 2026

J/Direct

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).

Last revised
Jul 13, 2026
Read time
≈ 1 min
Length
323 w
Citations
5
Source

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.

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

See also

See also

References

References

  1. McMillan, Robert (July 1, 1997). "Microsoft's J/Direct called death of Java". JavaWorld. Retrieved 2020-07-16.
  2. "JFC; Microsoft declares war". xent.com. 1997-08-01. Retrieved 2007-07-14.
  3. "Aliasing (Method Renaming)". Microsoft. Retrieved 2010-11-20.
  4. "J/Direct". codeguru.com. March 2001. Retrieved 2010-11-20.
  5. "How the VM Chooses Between ANSI and Unicode". Microsoft. Retrieved 2010-11-20.
External links