gpt4 book ai didi

java - 如何使用 JNI 使用 java 程序运行 c 程序

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:12 25 4
gpt4 key购买 nike

我浏览了整个互联网,现在我一直在生成共享库。第一个 Java 文件:

import java.io.*;
public class JavaToC {

public native void helloC();

static {
System.loadLibrary("HelloWorld");
}

public static void main(String[] args) {
new JavaToC().helloC();
}}

在编译上面的java程序之后,我还使用了头文件:

javah JavaToC

现在我编写了简单的 C 程序:(HelloWorld.c)

#include <stdio.h>
#include <stdlib.h>
#include <JavaToC.h>
#include <jni.h>

JNIEXPORT void JNICALL Java_JavaToC_helloC(JNIEnv *env, jobject javaobj)
{
printf("Hello World: From C");
return;
}

现在我想创建一个 native 共享库,但在这里我卡住了,我使用了

gcc HelloWorld.C -IC:\Program Files\Java\jdk1.7.0_21\include -IC:\Program Files\Java\jdk1.7.0_21\include\win3 -shared -o HelloWorld.dll

但是在windows中输入这些命令后,它返回错误:

gcc: error: Files\Java\jdk1.7.0_21\include: No such file or directory
gcc: error: Files\Java\jdk1.7.0_21\include\win3: No such file or directory

我无法清除它! :((

最佳答案

您可以使用 SWIG(参见 http://www.swig.org/)在您的 C 代码之上生成 Java API 包装器。您只需编写一个 swig 接口(interface)文件,swig 使用该文件为不同的类及其包含的方法生成适当的 .java 文件。

在您当前的方法中,您面临的一个问题是您需要在 Program Files 周围加上引号以转义空格。

关于java - 如何使用 JNI 使用 java 程序运行 c 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29101089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com