J / Direct - это технология, включенная в некоторые версии Microsoft Java Virtual Machine , которая позволяла выполнять прямые вызовы Windows API . J / Direct был специфическим для виртуальной машины Microsoft и заменял стандартный Java Native Interface (JNI).
Программа Java, использующая J / Direct, не будет работать на платформах, отличных от Microsoft Windows .
Выпуск J / Direct (вместе с AFC и WFC ) был частью усилий Microsoft по завоеванию лидерства в растущем сообществе Java . [1]
Поскольку это разрушило одно из главных преимуществ Java, ее кроссплатформенный характер, J / Direct часто рассматривался Microsoft как попытка подорвать кроссплатформенные возможности Java и как пример тактики принятия , расширения и подавления . [2]
После отказа Microsoft от их конкретной виртуальной машины Java и перехода на среду .NET J / Direct больше не поддерживался.
Архитектура
J / Direct использовал своего рода аннотацию в коде Java, чтобы установить связь между функциями Java и Windows . Поскольку при разработке J / Direct в Java не существовало аннотаций, Microsoft использовала специальный синтаксис в комментариях Java.
Например, чтобы объявить GetSysColor
функцию в User32 API : [3]
/ ** @ dll.import ("USER32", entrypoint = "GetSysColor") * / статический собственный int getSysColor (int nIndex);
Реализация Microsoft Java уже предоставляет предопределенный пакет, который предоставляет набор предопределенных классов, привязанных к API User32 , Gdi32.dll и Kernel32.dll . [4]
Кроме того, виртуальная машина Microsoft использовала некоторые встроенные правила для автоматической привязки кода Java к некоторым функциям Windows API . Например, он автоматически выбирал между версиями ANSI и Unicode функций Windows API . [5]
Смотрите также
- Собственный интерфейс Java
- Собственный доступ к Java
- P / Invoke , эквивалент .NET API
Рекомендации
- ↑ Макмиллан, Роберт (1 июля 1997 г.). «Microsoft J / Direct назвал смерть Java» . JavaWorld . Проверено 16 июля 2020 .
- ^ «JFC; Microsoft объявляет войну» . xent.com. 1997-08-01 . Проверено 14 июля 2007 .
- ^ «Псевдоним (переименование метода)» . Microsoft . Проверено 20 ноября 2010 .
- ^ "J / Direct" . codeguru.com . Проверено 20 ноября 2010 .
- ^ «Как виртуальная машина выбирает между ANSI и Unicode» . Microsoft . Проверено 20 ноября 2010 .