the Java Native Keyword and Methods

Overview

In this quick tutorial, we’ll discuss the concept of the native keyword in Java, and we’ll also show how to integrate native methods into Java code.

a palavra-chave nativa em Java

Em Primeiro Lugar, vamos discutir o que é uma palavra-chave nativa em Java.

simplificando, este é um modificador sem acesso que é usado para acessar métodos implementados em uma linguagem diferente de Java como C / C++.

indica a implementação dependente da plataforma de um método ou código e também atua como uma interface entre JNI e outras linguagens de programação.

Métodos nativos

Um método nativo é um método de Java (um método de instância ou um método de classe), cuja implementação é também escrito em outra linguagem de programação, como C/C++.

Além disso, um método marcado como nativo não pode ter um corpo e deve terminar com um ponto-e-vírgula:

 native method ();

Nós podemos usá-los para:

  • implementar uma interface com o sistema de chamadas ou bibliotecas escritas em outras linguagens de programação
  • sistema de acesso ou recursos de hardware que só são acessíveis a partir de outras linguagens
  • integrar o já existente legado de código escrito em C/C++ em um aplicativo Java
  • chamar um compilado dinamicamente carregados biblioteca com código arbitrário do Java

Exemplos

Vamos agora demonstrar como integrar estes métodos no nosso código Java.

4.1. Acessando o Código Nativo em Java

em Primeiro lugar, vamos criar uma classe DateTimeUtils que precisa acessar um dependente de plataforma de método nativo chamado getSystemTime:

public class DateTimeUtils { public native String getSystemTime(); // ...}

Para carregá-lo, vamos utilizar o Sistema.loadLibrary.

Vamos colocar a chamada para carregar esta biblioteca em um bloco estático, de modo que ele está disponível na nossa classe:

public class DateTimeUtils { public native String getSystemTime(); static { System.loadLibrary("nativedatetimeutils"); }}

temos criado uma biblioteca de vínculo dinâmico, nativedatetimeutils, que implementa getSystemTime em C++ usando instruções detalhadas coberta no nosso guia para JNI artigo.

4.2. O teste de Métodos nativos

Finalmente, vamos ver como podemos testar métodos nativos definido no DateTimeUtils classe:

public class DateTimeUtilsManualTest { @BeforeClass public static void setUpClass() { // .. load other dependent libraries System.loadLibrary("nativedatetimeutils"); } @Test public void givenNativeLibsLoaded_thenNativeMethodIsAccessible() { DateTimeUtils dateTimeUtils = new DateTimeUtils(); LOG.info("System time is : " + dateTimeUtils.getSystemTime()); assertNotNull(dateTimeUtils.getSystemTime()); }}

Abaixo está a saída do registrador de:

 INFO c.b.n.DateTimeUtilsManualTest - System time is : Wed Dec 19 11:34:02 2018

Como podemos ver, com a ajuda dos nativos, palavra-chave estamos com êxito capaz de acessar um dependente de plataforma de implementação escrito em outro idioma (no nosso caso, C++).

conclusão

neste artigo, aprendemos o básico de palavras-chave nativas e métodos. Com um exemplo rápido, também aprendemos a integrá-los em Java.

os excertos de código usados neste artigo estão disponíveis sobre o Github.

Começar com Mola 5 e Primavera de Inicialização 2, através do Aprender a Primavera curso:

>> confira O CURSO

Deixe uma resposta

O seu endereço de email não será publicado.