JNIEnv *

6 respostas
G

Ola!

Gostaria de saber se eu posso acessar algum tipo de informacao atraves do endereço contido em JNIEnv *. Qual a estrutura que define este o tipo JNIEnv?

Obrigada.

Gabriela

6 Respostas

aconstantino

Oi gabijs

o JNIEnv* é uma ‘ponte’ entre a parte nativa com o java
o primeiro jobject é um ponteiro passado para o método nativo

Da uma olhada em
http://java.sun.com/docs/books/tutorial/native1.1/summary/

Pq nao entendo mto de JNI ainda :smiley:

T+

Rafael_Steil

Oi Gabriela, tudo bom?

nao entendi direito a tua pergunta… voce quer saber como usar JNIEnv , quer a definicao dos metodos da classe, ou esta tendo algum problema na hora de tentar usar? Quais tipos de dados voce gostaria de acessar?

[]'s
Rafael Steil

G

Eu quero fazer um programa em C. Eu gostaria de saber o seguinte:
eu posso fazer o q com o JNIEnv *?
digamos que
JNIEnv *teste;
eu posso fazer teste-> o que? que estruturas, q dados?

Obrigada,

Gabriela

Rafael_Steil

Gabriela, de uma olhada na url

http://java.sun.com/docs/books/tutorial/native1.1/implementing/index.html

Ai explica como funciona o JNIEnv e como usar.

[]'s
Rafael

F

Dependendo do que vc for fazer, vc nem precisa saber que o env existe.

Por exemplo, eu fiz uma vez uma rotina em C para pegar estado assincrono do teclado, e usei JNI para chamar essa funcao a partir de programas Java. Nesse caso nem precisei me preocupar com o env.

Um caso pratico em que vc trabalha com o env eh quando vc trabalha com strings. Os formatos de strings do Java e do C sao diferentes, entao quando vc receber uma String do Java e for usa-la no programa em C vc necessita converte-la para “char *”. Para isso o env disponibiliza uma funcao que faz isso pra vc (“GetStringUTFChars”)!

Da mesma forma, se vc quiser passar uma string do C para o Java, o env oferece uma funcao para vc converter “char *” para o tipo String do Java (a funcao “NewStringUTF”).

Exemplos de uso de strings com JNI que usam essas funcoes citadas acima podem ser achados na pagina:

http://java.sun.com/docs/books/tutorial/native1.1/implementing/string.html

G

A minha duvida seria se 'e ossivel eu obter os valores dos parametros passados a um metodo Java no programa C.
Estou usando a JVMPI. E um dos dados que contem em um evento eh uma referencia a JNIEnv *.
Gostaria de saber se atraves dela eu posso obter os valores dos parametros, no momento da geracao de um evento JVMPI_EVENT_METHOD_ENTRY ou JVMPI_EVENT_METHOD_ENTRY2.

Obrigada,

Gabriela.

Criado 7 de outubro de 2002
Ultima resposta 8 de out. de 2002
Respostas 6
Participantes 4