將完整功能的 C 專案編譯為動態連結庫(Windows `.dll` / Linux `.so`),再由 Java 透過 JNI 呼叫。
__declspec(dllexport) (Windows) 或預設可見性,定義 JNIEXPORT 規範的函式簽名。// MyLib.h
#ifdef _WIN32
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT
#endif
DLL_EXPORT jint Java_com_example_MyClass_myMethod(JNIEnv*, jobject, jint);cl /LD MyLib.c /I"%JAVA_HOME%\include" /I"%JAVA_HOME%\include\win32" /FeMyLib.dllgcc -shared -fPIC -I$JAVA_HOME/include -I$JAVA_HOME/include/linux MyLib.c -o libMyLib.sostatic { System.loadLibrary("MyLib"); } // 無前綴 lib、無副檔名
public native int myMethod(int param);
建議:先用簡單的「傳入整數、回傳平方」驗證流程,再遷移複雜邏輯。