Introdução à palavra-chave nativa em Java

A palavra-chave nativa atua como um link entre a linguagem JAVA e um pedaço de código ou biblioteca escrito em idiomas diferentes, exceto para JAVA, que pode depender da máquina em que você está operando. Se a palavra-chave nativa for aplicada a um método, isso significa que o método será implementado usando código nativo escrito em alguma outra linguagem (como C ou C ++) via JNI (interface nativa JAVA).

Sintaxe

A sintaxe do código nativo é a mesma da definição de função normal, com a palavra-chave “nativa” adicionada no início da função.

Por exemplo:

Public class testing
(public native String testMethod (String parameter);)

Aqui, o público é um modificador de acesso. Deve ser público para que outro arquivo possa usá-lo. A sequência é o tipo de dados de retorno da função. Pode ser inteiro, caractere ou booleano, dependendo da palavra-chave. O parâmetro passado para esta função também é do tipo de dados string. Tudo deve ser mantido em subclasse.

Após a declaração da função, chamamos essa função via objeto criado e biblioteca carregada.

public static void main(String() args)
(
System.loadLibrary("testing");
testing testingnew = new testing();
String output = testingnew.stringMethod("NATIVE");
)

A biblioteca definida acima deve ser carregada primeiro e o objeto n é criado. Com a ajuda deste objeto, a função nativa é chamada.

Como a palavra-chave Native funciona?

Deve haver dois arquivos. Um contendo código JAVA enquanto o outro deve ter código legado C / C ++. O código Java será usado para chamar o código legado. Este código legado irá interagir com o hardware e retornar a saída esperada.

Quando o código legado interage com o hardware, ele não segue as diretrizes estabelecidas pelo JAVA. Esse código fará o processamento desejado para obter a saída e passar os resultados para o JNI. A interface nativa do Java fará o check-in em seu diretório, contendo todas as regras referentes ao código nativo (isso vem em um arquivo chamado javah.exe no SDK). O JNI foi projetado como parte do kit de ferramentas Java. Após esse processamento, o JAVA publicará as saídas na própria linguagem JAVA. Quando estamos criando o programa em JAVA, devemos garantir que haja um link de fluxo de dados / variável entre o arquivo JAVA e o arquivo herdado, para que haja um fluxo suave de dados entre os dois.

As etapas que explicam como usar palavras-chave nativas são fornecidas abaixo:

  1. Escreva o código JAVA que contém o método nativo, a biblioteca compartilhada carregada e salve-o usando “filename.JAVA”.
  2. Compile o código JAVA e converta o código em bytecode.
  3. Crie um arquivo de cabeçalho C / C ++ contendo uma assinatura de função nativa que deve ser chamada.
  4. O código de gravação C / C ++ possui uma implementação de método nativo.
  5. Execute o arquivo executável JAVA para ver os resultados.

Exemplo

Devemos escrever código no Eclipse e executar o código para criar uma biblioteca usando a qual o código C será implementado.

Código : package com.slackerOne;

public class JPP (
public static native void pAccess();
public static native int pRead();
public static native void pWrite(int port, int output);
static(
System.loadLibrary("JPPlibs");
)
public void jAccess()(
JPP.pAccess();
)
public int jRead()(
return JPP.pRead();
)
public void jWrite(int port, int output)(
JPP.pWrite(port, output);
)
)

Depois de salvar esse código na nova "classe" do projeto java. Temos que configurar um ambiente de execução para gerar um arquivo de cabeçalho.

Quando executarmos isso, devemos obter uma biblioteca gerada.

Resultado:

Aqui, criamos o arquivo de cabeçalho a partir do código java, que atuará como um link entre o código nativo e a linguagem java.

Vantagens da palavra-chave nativa em Java

  1. Ele fornece uma vantagem adicional ao JAVA para interagir com o código gravado em outros idiomas e reduzir o trabalho para que o mesmo código seja gravado no JAVA, reduzindo a redundância de código.
  2. Melhora o desempenho geral do código. Como o código está escrito em outros idiomas, pode ser mais rápido quando ele trabalha com o idioma da máquina em comparação com o JAVA. Podemos então usar o programa JAVA para chamar esse código.
  3. Usando essa abordagem, podemos fazer chamadas diretamente ao sistema. Reduzindo a probabilidade de interferência externa e melhorando a velocidade de execução do código.
  4. Você pode chamar dinamicamente uma biblioteca pré-carregada (escrita em qualquer idioma que não seja JAVA) usando um código de direção arbitrário escrito em JAVA e ainda obter uma resposta em JAVA.
  5. Torna acessível para o JAVA alcançar os recursos de hardware disponíveis para uso somente em outros idiomas.
  6. Caso você já tenha um código dependente da plataforma para a sua aplicação e cujos recursos não sejam suportados via JAVA, nesse caso, podemos ter um código nativo e vincular esse código nativo ao JAVA através da palavra-chave nativa.

Regras

  1. A palavra-chave nativa deve ser usada antes do nome do método.
  2. A declaração do método nativo não possui o corpo e deve terminar com um ponto-e-vírgula, pois esses métodos não são definidos em JAVA, mas estão presentes na linguagem C / C ++.
  3. Métodos nativos não podem ser declarados como um método abstrato.
  4. Como não há garantia se o código antigo anterior é escrito de acordo com a norma IEEE 754 (a norma IEEE para aritmética de ponto flutuante é uma norma técnica para aritmética de ponto flutuante estabelecida em 1985 pelo Institute of Electrical and Electronics Engineers), não podemos declarar esses métodos nativos como strictftp.
  5. A especificação Java Native Interface (JNI) é projetada pelo JAVA para definir as regras e declarações para implementar métodos nativos, como a conversão de tipos de dados entre Java e o código nativo.

Conclusão

A palavra-chave nativa é a ponte entre o idioma nativo e o JAVA. Isso pode ser usado como um link crítico se a interação do nosso software com o hardware for mais para obter o código eficiente usando o código pré-existente. Faz com que a implementação funcione menos em comparação com o design de um novo código de aplicativo a partir do zero, sempre que possível.

Artigos recomendados

Este é um guia para a palavra-chave Native em Java. Aqui discutimos como a palavra-chave Native funciona com os exemplos, bem como as vantagens e as regras. Você também pode consultar os seguintes artigos para saber mais -

  1. JTabbedPane em Java
  2. Palavra-chave protegida em Java
  3. Máquina Virtual JAVA
  4. Componentes Swing em Java
  5. Palavras-chave C ++