2023-01-20 322
我在JNI上有一个简单的类,我需要将其导出到标题文件(.h).
我已经读到我需要使用javah命令,然后转到项目的src文件夹,然后键入:
javah -jni com.main_package.NativeClass
在Windows上它可以正常工作,但是在我的主操作系统(Linux)上效果不佳.它一直告诉它找不到课程.我试图使用命令的许多组合并在许多可能的路径上运行,但它不起作用.我关注了许多教程和网站(包括此处),并尝试了它们的组合.
我什至尝试使用eclipse的外部工具为此,如
我看起来像这样的错误:
error: cannot access com.main_package.NativeClass
class file for com.main_package.NativeClass not found
javadoc: error - Class com.main_package.NativeClass not found.
Error: No classes were specified on the command line. Try -help.
有人可以帮我吗?我真的很喜欢在Linux上工作,并且每次都需要使用此工具时都不想切换操作系统.
这是正确的答案:
对于控制台,请转到”>
javah -jni com.main_package.nativeclass
对于Eclipse,请使用我给出的链接,而是使用${project_loc}/bin/使用${project_loc}/bin/classes/,然后在包装浏览器中,转到nativeclass.java,然后运行外部工具.输出将与Java文件相同的路径.
您不转到项目的src文件夹,而是您编译的 .class 文件的根(其中com子文件夹存在或创建). javah正在寻找编译的类,而不是您的源文件.如果您只是手动运行javac,则类文件将与原始资源相同的位置.然后,语句”转到SRC文件夹”是正确的.但是,如果您有Eclipse的项目或使用ANT或其他项目,则类可能在完全不同的位置 – 取决于您的项目的设置.我猜想您的窗户和Linux上的日食项目的设置不同.
您不必在类文件上使用Javah.您可以直接在源文件(.java)上使用Javah来生成本机C/++签名(标头)文件.例如:
javah -cp /Users/Android/android-sdk/platforms/android-xy/android.jar;. com.test.JniTest
原文链接:https://77isp.com/post/25939.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态