從 C 呼叫 Java 函數
好奇的人想知道如何從 C 應用程式中呼叫 Java 函數。雖然可以透過命令列或其他類似方法進行此類調用,但我們將深入研究更直接的方法。
JNI Magic
關鍵互通性在於 Java 本機介面 (JNI)。它提供了 Java 和其他語言(包括 C 語言)之間的橋樑。透過利用 JNI 方法,您可以從 C 建立 JVM(Java 虛擬機器)並以程式設計方式與其通訊。
範例過程
為了說明這個過程,請考慮「從 C 建立 JVM」中提供了範例。它提供了有關建立 JVM 和從 C 呼叫方法的逐步指南。
<code class="cpp">#include <jni.h> #include "jvmti.h" int main() { JavaVM *jvm; JavaVMInitArgs args; JNIEnv* env; const char *prop = "-Djava.class.path=/path/to/your/class/files"; args.version = JNI_VERSION_1_6; args.nOptions = 1; args.options = &opt; args.ignoreUnrecognized = JNI_FALSE; if (JNI_CreateJavaVM(&jvm, &env, &args) != JNI_OK) { // Error handling... } // Invoke Java methods here... jvm->DestroyJavaVM(); return 0; }</code>
快取注意事項
快取指向出於效能原因,C/C 中的 JVM 很誘人,因此謹慎行事至關重要。關於何時以及什麼可以被緩存涉及特定的語義。不遵守這些準則可能會導致意外行為。有關更多詳細信息,請參閱官方 JNI 參考文件。
前進
JNI 的介紹為進一步探索提供了基礎。借助 JNI,Java 和 C 應用程式之間互動的可能性是無限的。
以上是如何從 C 呼叫 Java 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!