Skip to content
Menu
CDhistory
CDhistory

Palavra-chave nativa em JAVA

Posted on Abril 30, 2021 by admin

Introdução da palavra-chave nativa:

A palavra-chave nativa funciona como um link entre a linguagem JAVA e um pedaço de código ou biblioteca escrita em diferentes idiomas, exceto JAVA, que talvez dependa da máquina em que você está operando. Se a palavra-chave nativa for aplicada a um método, então isso significa que o método será implementado usando código nativo escrito em algum outro idioma (como C ou C++) via JNI (interface nativa JAVA).

Sintax:

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

Para ex:

Teste de classe pública

{public native String testMethod (String parameter);}

Here public is an access modifier. Ele deve ser público para que outro arquivo possa utilizá-lo. String é o tipo de dado de retorno da função. Pode ser inteiro, caracter ou booleano, dependendo da palavra-chave. O parâmetro passado para esta função também é do tipo string de dados. Tudo deve ser mantido na classe.

Após a declaração da função chamamos esta 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”);

}

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

Como funciona a palavra-chave nativa?

Deve haver dois arquivos. Um contendo código JAVA enquanto o outro deve ter código C/C++ legado. 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 então ele não seguirá as diretrizes traçadas pelo JAVA. Este código irá fazer o processamento desejado para obter a saída e passar os resultados para a JNI. A interface nativa Java irá então verificar em seu diretório contendo todas as regras pertencentes ao código nativo (Isto vem em um arquivo chamado javah.exe no SDK). JNI é projetado como parte do kit de ferramentas Java. Após este processamento o JAVA irá publicar as saídas na própria linguagem JAVA. Quando estamos criando um programa em JAVA então devemos ter certeza que existe um link variável/fluxo de dados entre o arquivo JAVA e o arquivo legado para que haja um fluxo suave de dados entre ambos.

Passos explicando como fazer uso de palavras-chave nativas são dados abaixo:

  1. Escrever o código JAVA contendo o método nativo, biblioteca compartilhada carregada e salvá-la usando “filename”.JAVA”.
  2. Compilar código JAVA e converter o código para bytecode.
  3. Criar arquivo de cabeçalho C/C++ contendo assinatura de função nativa que deve ser chamada.
  4. Escrever código C/C++ tendo implementação do método nativo.
  5. Executar arquivo executável JAVA para ver os resultados.

Exemplos para mostrar implementação de palavra-chave nativa:

Devíamos escrever código no Eclipse e executar o código para criar uma biblioteca usando qual código C será então implementado.

Code: package com.slackerOne;

public class JPP {

public static static native void pAccess();

public static native int pRead();

public static native void pWrite(int port, int output);

static{

System.loadLibrary(“JPPlibs”);

}

sem vazio público jAccess(){

JPP.pAccess();

>public int jRead(){

retornar JPP.pRead();

}

public void jWrite(int port, int output){

JPP.pWrite(port, output);

}

}

Após salvar este código na nova “classe” do projeto java. Temos que configurar o ambiente de execução para gerar o arquivo header.

Quando vamos executar isto devemos gerar uma biblioteca.

Output:

Aqui criamos o arquivo header a partir do código java que atuará como link entre o código nativo e a linguagem java.

>

Vantagens:

  1. Põe uma vantagem adicional ao JAVA para interagir com o código escrito em outras línguas e reduzir o trabalho para ter o mesmo código escrito em JAVA, reduzindo assim a redundância do código.
  2. Põe melhora a performance geral do código. Como o código escrito em outro idioma pode ser mais rápido quando trabalha com o idioma da máquina em comparação com o JAVA. Podemos então usar o programa JAVA para chamar este código.
  3. Usando esta abordagem, podemos dar directamente chamadas de sistema. Reduzindo a probabilidade de interferência externa e melhorando a velocidade de execução do código.
  4. Pode chamar dinamicamente uma biblioteca pré-carregada (escrita em qualquer idioma que não seja JAVA) usando um código de condução arbitrário escrito em JAVA e ainda obter resposta em JAVA.
  5. Faz com que seja acessível para JAVA para alcançar os recursos de hardware que estão disponíveis para serem usados apenas por outros idiomas.
  6. No caso de ter um código dependente da plataforma já compilado para a sua aplicação e cujos recursos não são suportados via JAVA, nesse caso podemos ter código nativo e ligar esse código nativo ao JAVA através de palavra-chave nativa.

Rules:

  1. Native keyword is to be used before method name.
  2. Native method declaration does not have body and should end with semi colon as these methods are not defined in JAVA but are present in C/C++ language.
  3. Os métodos nativos não podem ser declarados como método abstrato.
  4. Desde que não haja certeza se o código antigo anterior foi 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), portanto, não podemos declarar estes métodos nativos como strictftp.
  5. A especificação da Interface Nativa Java (JNI) é projetada pelo JAVA para definir as regras e declarações para implementar métodos nativos, como conversão de tipos de dados entre Java e o código nativo.

Conclusion:

Palavra-chave nativa é a que faz a ponte entre as linguagens nativas e o JAVA. Isto 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 código pré-existente. Isso faz com que a implementação funcione menos em comparação com o desenho de um novo código de aplicação a partir do zero, onde quer que ele possa ser evitado.

Deixe uma resposta Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Artigos recentes

  • Acela está de volta: NYC ou Boston por $99
  • Entrada OMIM – # 608363 – CHROMOSOME 22q11.2 SÍNDROME DE DUPLICAÇÃO
  • Kate Albrecht’s Parents – Learn More About Her Father Chris Albrecht And Mother Annie Albrecht
  • Temple Fork Outfitters
  • Burr (romance)

Arquivo

  • Fevereiro 2022
  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021
  • Agosto 2021
  • Julho 2021
  • Junho 2021
  • Maio 2021
  • Abril 2021
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語
©2022 CDhistory | Powered by WordPress & Superb Themes