Jni

4 respostas
pgoncalves

Eae pessoal!

blz??

seguinte… estou tentando aprender JNI, e estou seguindo o tutorial da sun… so que estou fazendo igual… porém da um erro de compilação muito assombroso…

o fonte:

package com.teste.helloword;

class HelloWorld {
private native void print();

static {
    System.loadLibrary("HelloWorld");
}

public static void main(String[] args) {
    new HelloWorld().print();
}

}

primeiro compilo usando o javac…

javac HelloWorld.java

e depois

javah -jni HelloWorld

ai me retorna o seguinte errro:

C:\java\workspace\JNI\src\com\empresa\helloword>javah -jni HelloWorld

error: cannot access HelloWorld

bad class file: .\HelloWorld.class

class file contains wrong class: com.empresa.helloword.HelloWorld

Please remove or make sure it appears in the correct subdirectory of the classpa

th.

com.sun.tools.javac.util.Abort

at com.sun.tools.javac.comp.Check.completionError(Check.java:169)

at com.sun.tools.javadoc.DocEnv.loadClass(DocEnv.java:149)

at com.sun.tools.javadoc.RootDocImpl.(RootDocImpl.java:77)

at com.sun.tools.javadoc.JavadocTool.getRootDocImpl(JavadocTool.java:156

)

at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:330)

at com.sun.tools.javadoc.Start.begin(Start.java:128)

at com.sun.tools.javadoc.Main.execute(Main.java:66)

at com.sun.tools.javah.Main.main(Main.java:147)

javadoc: error - fatal error

2 errors

4 Respostas

fenrir

Você criou sua classe dentro de um package: com.teste.helloword

A classe gerada, está dentro desse diretório (com/teste/helloword)?

pgoncalves

está sim…

fenrir

O package esta errado. No seu fonte esta como com.teste.helloword e na compilacao aparece como com.empresa.helloword.

pgoncalves

Foi em quem renomeei…

o certo é:
com.empresa.helloword;

cara… nao é diretório… o fato é o seguinte… primeiro compilei com o javac… tudo ok… e logo dps do enter do javac eu coloquei a instrução do javah…

Obrigado

Criado 23 de março de 2007
Ultima resposta 24 de mar. de 2007
Respostas 4
Participantes 2