我试图从我的类中创建 .c
和 .h
文件,但遇到了一个非常奇怪的问题。虽然 javah 从我的 .java
文件完美地创建了一个 .h
文件 - javac 没有创建 .c
文件,而是创建了 .class
文件,日志中没有错误!
Java 源代码:
package com.iiordanov.bVNC;
//import java.io.IOException;
public class NativeCalls {
static
{
System.loadLibrary("start-spice-xml");
}
public native static String[] getPortAndPassword(String server, String name);// throws IOException;
}
我目前在 Fedora 上运行。当我尝试从 src 文件夹运行时:
javac com/iiordanov/bVNC/NativeCalls.java
它创建 NativeCalls.class,但我需要 .c
样式类。另一方面,
javah -jni com.iiordanov.bVNC.NativeCalls
完美运行并创建 com_iiordanov_bVNC_NativeCalls.h
。
如何从我的 Java 源代码生成 .c
文件?
最佳答案
Javac 不是用来创建 C 文件的。它是一个 Java 编译器——字节码的源代码。
如果您想要一个包含 native 函数的空实现的 C 文件,请将 -stubs
选项传递给 javah
。
关于android - Javac 不会从 .java 创建 native .c 文件。 JNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22415524/