gpt4 book ai didi

java - Javah工具错误: could not find class file for HelloWorld

转载 作者:行者123 更新时间:2023-12-03 08:48:38 25 4
gpt4 key购买 nike

我正在尝试从命令行使用javah工具创建头文件,并且在Windows 7 OS上的eclipse上使用外部工具配置,但无法正常工作。

我的代码是:

package mypackage;
public class HelloWorld {
private static String HelloWorld;
private native void print();
static {
System.loadLibrary(HelloWorld);
}
public static void main(String[] args)
{
new HelloWorld().print();
}
}

我采用了不同的方法,甚至从Oracle中阅读了javah工具的文档,但是它们并没有帮助克服这个问题。

我的类文件(HelloWorld.class)和Java文件(HelloWorld.java)都在 C:\..\eclipse-workspace\Distribution System Process\src\mypackage

但是每当我运行javah工具时,它都会给我一个错误:
could not find class file for HelloWorld or mypackage.HelloWorld

我也尝试通过提供类路径来实现,但是没有得到任何头文件。

注意:我的包中有两个类。 Frame1.java是主类,即Gui,另一类用于JNI,称为HelloWorld.java。我不确定这些类是否重要,但是我目前正在使用HelloWorld.java创建头文件:

screen shot of my project

是什么导致此故障? :(

最佳答案

javah工具要求访问已编译的代码。您必须提供编译后的类所在的位置。

在这里查看非常简单的示例代码:

http://jnicookbook.owsiak.org/recipe-No-001/

如您所见,源代码被编译并存储在其他地方(这里称为target)

${JAVA_HOME}/bin/javac -d target java/recipeNo001/HelloWorld.java
${JAVA_HOME}/bin/javah -jni -d c -cp target recipeNo001.HelloWorld

然后,您必须告诉 javah在哪里可以找到这些文件(已编译的 Java类)。这是通过 -cp参数完成的。

另一方面,参数 -d将告诉 javah在哪里存储 C header 。

关于java - Javah工具错误: could not find class file for HelloWorld,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47585729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com