生成JNI头文件时出错
Error when generating JNI header file
我试图通过命令行生成JNI头文件。当我输入javah myclass.class,错误是
Exception in thread main java.IllegalArgumentException: not a valid class name
at com.sun.tools.javac.api.JavacTool.getTask<JavacTool.java:177>
at com.sun.tools.javac.api.JavacTool.getTask<JavacTool.java:68>
at com.sun.tools.javah.api.JavachTask.run<JavahTask.java:509>
at com.sun.tools.javah.api.JavachTask.run<JavahTask.java:335>
at com.sun.tools.javah.Main.main<Main.java:46>
但是当我输入javah myclass
错误:找不到myclass的类文件
以前,当我在类目录中输入ls时,类文件是存在的。
这是我的代码片段
package com.blablabla
public static native long myclass(long n);
有人知道如何解决这个问题吗?
谢谢
也许你应该试着给出完全限定的类名:-
javah com.blablabla.myclass
类名以小写字母开头,尝试使用大写字母,这是Java中强制的约定。此外,尝试指定全限定名称(列出由.
分隔的所有包)
去掉参数的.class部分。参数是完全限定的类名,不是文件名。
获得完全限定的类名是非常痛苦的。如果您想编写自己的解决方案,您可以查看我编写的处理这个令人头痛的问题的脚本集,或者只是处理这个特定问题的脚本。
我打开cmd窗口(显然是Windows),在包含java .exe的文件夹中,我键入
javah -classpath C:myprojectpathPackageDirectorypackagenamebuildtmpkotlin-classesdebug com.company.package.MyKotlinClass
文件mykotlclass .class在文件夹
C:myprojectpathPackageDirectorypackagenamebuildtmpkotlin-classesdebugcomcompanypackage
注意,我使用了指定类路径和限定类名的混合方法。
相关文章:
- 读取文件的最后一行并输入到链接列表时出错
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 在 C/C++ 中打开驻留在 "/sys/" 下的文件时出错
- 在头文件中定义变量不会出错
- 如何在多写入器情况下对文件支持的共享内存中的大页面出错
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- 生成文件中隐式规则中的 -c 标志出错
- 编译时出错 - 链接.cpp和头文件
- 从人员矢量插入和读取文件时出错
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 猫鼬 - 包含标准C++库文件时出错
- 在f2c.h文件中定义min()max()宏时出错
- ASIOSDK;从hostsample.cpp生成mex文件时出错
- 使用emscripten将c++文件转换为wasm时出错
- 将文本从一个文件复制到另一个c++流时出错
- 在C++目录中搜索文件的函数输出中出错
- 编译包含LLVM API标头的C++文件时出错
- MySQL C++连接器:添加符号时出错:文件格式无法识别