在Ubuntu下,你需要先安裝Java開發工具包(JDK)和GCC編譯器
打開終端,輸入以下命令來安裝JDK和GCC:
sudo apt update
sudo apt install openjdk-11-jdk gcc
使用文本編輯器創建一個名為HelloWorld.java
的文件,內容如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
在終端中,導航到包含HelloWorld.java
文件的目錄,然后輸入以下命令來編譯Java源文件:
javac HelloWorld.java
這將生成一個名為HelloWorld.class
的字節碼文件。
首先,你需要創建一個C程序來調用Java程序。使用文本編輯器創建一個名為run_java.c
的文件,內容如下:
#include <jni.h>
#include<stdio.h>
int main(int argc, char *argv[]) {
JavaVMOption options;
JNIEnv *env;
JavaVM *jvm;
JavaVMInitArgs vm_args;
options.optionString = "-Djava.class.path=./";
vm_args.version = JNI_VERSION_1_8;
vm_args.nOptions = 1;
vm_args.options = &options;
vm_args.ignoreUnrecognized = 0;
JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
jclass cls = (*env)->FindClass(env, "HelloWorld");
jmethodID mid = (*env)->GetStaticMethodID(env, cls, "main", "([Ljava/lang/String;)V");
jobjectArray args = (*env)->NewObjectArray(env, 0, (*env)->FindClass(env, "java/lang/String"), 0);
(*env)->CallStaticVoidMethod(env, cls, mid, args);
(*jvm)->DestroyJavaVM(jvm);
return 0;
}
接下來,編譯并運行C程序:
gcc -o run_java run_java.c -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" -L"$JAVA_HOME/jre/lib/amd64/server" -ljvm
./run_java
這將運行Java程序并輸出“Hello, World!”。