最近由于要做一个浏览器插件,在linux运行。想用JNI去做,但是。。。javah不通过,后来搬到windows又不通过。
原来-classpath参数是指你需要javah对象所在根包目录,而不是文件目录。
例如结构:
package com.ui;
class UI {
//your code
}
首先确保com/ui路径存在,因为javah的-classpath选项要定位class路径的查找入口,这里应该是 com/ui
所以正确的写法是:
javah -classpath ~/com/ui com.ui.UI.class
分享到:
相关推荐
当我们使用正确的类名但仍然收到找不到类的错误时,可能是因为工作目录或类路径设置不正确。确保你在类文件所在的目录下执行`javah`命令,或者正确设置`-classpath`参数,使其指向包含类文件的目录。 4. **错误四...
2. **运行javah**:在命令行中,导航到包含`.class`文件的目录,然后执行javah命令。例如: ```bash javah -jni com.example.myapp.MyJNI ``` 这将生成一个`com_example_myapp_MyJNI.h`头文件。 3. **编写C/C++代码...
在 Android NDK 中,javah 命令只能对 Java 代码进行转换,不能直接对 Android 编译生成的类文件进行转换。如果需要对 Android 编译生成的类文件进行转换,需要先将其编译成 Java 代码,然后再使用 javah 命令进行...
生成HelloWorld.h文件(若提示找不到HelloWorld类文件,Java代码中不要写package) 有package时,在包所在目录下打开终端,输入命令javah -jni com.gjl.jnitest.HelloWorld (com.gjl.jnitest为包名) 生成 ...
4. 利用命令生成相应的头文件,在根目录下执行:javah -classpath bin/classes -d jni com.xxx.hello.HelloJni ————————————— ——————— ^ ^ 包名 类名 5. 编写相应的.c文件(hello-jni.c) #...
值得注意的是,命令中指定了-classpath参数,这个参数指明了Java类的路径,这对于javah命令执行生成头文件是必不可少的。 最后,作者在第4步中,使用javap命令来查看Java类的签名。这里需要注意的是,javap命令与...
- `-o[输出文件]`:将所有类的输出合并到一个文件。 - `-d[目录]`:指定输出文件的保存位置。 - `-stubs`:生成C声明。 - `-verbose`:输出详细信息。 - `-help`:显示帮助信息。 - `-version`:显示javah的...
JDK命令大全是Java开发中不可或缺的一部分,它们提供了对Java程序生命周期的全面控制,从编译到运行,再到调试和分析。以下是一些关键的JDK命令及其详细说明: 1. **java.exe**: 这个命令用于运行Java应用程序。...
它是Java编程语言的核心组成部分之一,几乎每个Java开发者都会频繁使用到该命令。当使用`java.exe`命令运行程序时,会启动一个控制台(console)窗口,程序的输出信息将显示在这个窗口中。 #### 二、javac.exe **...
通过上述命令,开发者可以完成从编译、运行到调试的整个开发流程。而对于那些对性能监控和故障排除有需求的场景,jconsole、jstat、jps等工具可以提供必要的数据和手段。 上述Java命令行工具的具体使用场景和参数...
1. 找不到jni.h文件:该问题可以通过将jdk的bin目录和include目录添加到编译环境中来解决。 2. 动态链接库加载失败:该问题可以通过检查动态链接库的路径和名称来解决。 Jni是一种powerful技术,allowing Java程序...
这些工具是开发和维护 Java 应用程序的重要组成部分,它们提供了强大的功能,从编译源代码到调试运行时的问题,再到监视和管理运行中的应用。掌握这些工具的使用对于 Java 开发者来说至关重要。
// 处理找不到类的错误 } // 获取方法ID jmethodID methodId = (*env)->GetMethodID(env, clazz, "methodName", "(参数类型描述)返回类型描述"); if (methodId == NULL) { // 处理找不到方法的错误 } // 调用...
编译过程中可能会遇到JNI找不到对应native方法的问题,这通常是因为编译版本不匹配导致的。确保你编译的版本与项目的ndk兼容。 最后,在主工程中调用JNI文件。这里需要添加对新生成的库模块的依赖,并确保.so文件被...
本文将详细介绍`java.exe`、`javac.exe`、`javaw.exe`、`javah.exe`、`javap.exe`、`jdb.exe`及`javaws.exe`等命令的功能及其高级用法,旨在帮助开发者更加熟练地运用这些工具。 #### 1. `java.exe` **简介**:`...
2. **编译错误:找不到'jni.h'**:当C/C++编译时出现找不到`jni.h`的错误,这通常意味着编译环境没有正确配置Java SDK的路径。解决方法是在编译器的设置中添加Java SDK的`include`目录,如`安装目录>\include`以及`...
这样操作之后,`jar`等Java相关命令就可以在任何地方被调用了,从而避免了在编译GCC时由于找不到这些命令而引发的错误。 ### 三、缺失ncurses库 如果遇到“/usr/bin/ld: cannot find -lncurses”这样的错误,这...
以上命令的路径我写的是绝对路径:/complie2/wangwei/svn_8880_r95/android/android-4.2.1_r1/out/target/common/obj/APPS/jni_example_intermediates/classes 下面的com.example.jni_example.MainActivity 类 ...