在Ubuntu下,你需要先安装Java开发工具包(JDK)和GCC编译器
- 安装JDK和GCC:
打开终端,输入以下命令来安装JDK和GCC:
sudo apt update sudo apt install openjdk-11-jdk gcc
- 创建一个Java源文件:
使用文本编辑器创建一个名为HelloWorld.java
的文件,内容如下:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
- 编译Java源文件:
在终端中,导航到包含HelloWorld.java
文件的目录,然后输入以下命令来编译Java源文件:
javac HelloWorld.java
这将生成一个名为HelloWorld.class
的字节码文件。
- 使用GCC编译并运行Java程序:
首先,你需要创建一个C程序来调用Java程序。使用文本编辑器创建一个名为run_java.c
的文件,内容如下:
#include#include 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!”。