Проблемы, связанные с родными методами

Родные методы выглядят многообещающе, поскольку они дают возможность получить доступ к существующей базе библиотечных подпрограмм, а также позволяют надеяться на обеспечения высокой скорости работы программ. Однако с этими методами связаны две существенных проблемы.

  • Потенциальный риск нарушения безопасности. Поскольку родной метод выполняет реальный машинный код, он может получить доступ к любой части системы. То есть native-код не относится к исполняющей среде Java. Это, например, угрожает вирусной инфекцией. По этой причине аплеты не могут использовать native-методы. Кроме того, загрузка DLL-библиотеки может быть ограничена и она может быть субъектом утверждения для менеджера по безопасности.
  • Потеря переносимости. Поскольку native-код содержится в DLL-библиотеке, он должен быть представлен на машине, которая выполняет Java-программу. Более того, поскольку каждый native-метод зависит от процессора и операционной системы, каждая DLL-библиотека, как следствие, не является переносимой. То есть Java-приложение, которое использует native-методы, сможет выполняться только на машине, на которой установлена совместимая DLL-библиотека.

Применение native-методов должно быть ограничено, поскольку они делают вашу Java-программу непереносимой и представляют существенный риск нарушения безопасности.