我可以只用C / C ++创建Java类吗?

时间:2012-03-26 17:17:42

标签: java java-native-interface

我听说过JNI,并试图使用它。我想要做的是从C或C ++ 创建一个Java类,即没有像这样的Java代码:

class MyClass {
    static { System.loadLibrary("myclass_impl.dll") }
    native public int someFunction(String string);
}

例如,Python允许从C创建扩展类,从而您也可以使用ctypes从DLL中包装C函数。

有没有办法为Java做这个?

1 个答案:

答案 0 :(得分:3)

几乎肯定不是。 Java类必须用Java字节码表示,C和C ++不能(通常)配备生成。此外,Java内存模型与C和C ++中的模型有很大不同,并且需要自己不寻常的布局约束等。

除非您想在C ++中实现基本上整个Java编译器,否则如果可以这样做,我会感到惊讶。