从现有的c头和源代码生成java代码

从现有的c头和源代码生成java代码,java,c,Java,C,我有一些现有的头文件(.h)和源文件(.c)以及一些我想在java中使用的c代码。 我使用过JNI,但在所有这些情况下,我都有一个dll,必须编写一个java类来生成头文件。但在本例中,我有一个头文件allready和原始源代码。 有没有简单的方法来生成调用此C代码的java代码 到目前为止,我还没有使用过C,所以我对如何编译C代码一无所知。有一个C代码附带的make文件,但我不确定它将创建什么。我在linux环境中运行了make文件,它创建了一个没有任何扩展名的文件,并运行了一个简短的测试,但

我有一些现有的头文件(.h)和源文件(.c)以及一些我想在java中使用的c代码。 我使用过JNI,但在所有这些情况下,我都有一个dll,必须编写一个java类来生成头文件。但在本例中,我有一个头文件allready和原始源代码。 有没有简单的方法来生成调用此C代码的java代码

到目前为止,我还没有使用过C,所以我对如何编译C代码一无所知。有一个C代码附带的make文件,但我不确定它将创建什么。我在linux环境中运行了make文件,它创建了一个没有任何扩展名的文件,并运行了一个简短的测试,但您不知道它是否编译了全部代码。

请看一看。它比JNI更易于使用


但是为了能够使用JNA/JNI,您需要一个共享库。您似乎拥有创建可执行文件的功能。要运行外部进程,请使用,或者,如果您确切知道自己在做什么,您可以尝试使用
ProcessBuilder
API。

我查看了JNA allready,但看起来您还需要一个dll来启动,我没有,只有源代码。不知道如何将源代码编译成有效的dll。如果C代码的输出是一个可执行文件,那么您应该查看如何从Java运行它。如果需要访问内部结构,则必须学习C语言以及如何构建共享库。请参阅,编译的exe只运行一个简短的测试,但不提供代码包含的所有函数。这是一些来自tft显示器制造商的代码,用于显示如何控制显示,编译的exe仅在显示器上显示一些测试图像,但该代码包含更多显示如何控制显示的函数。我需要用java调用这些函数。在这种情况下,您需要学习一点关于C的知识,并阅读我在上一篇评论中链接的共享库教程。您可以尝试使用JavaCPP,它基本上可以满足您的所有需要(从标题创建java接口并从源代码编译库):如果您需要更具体的信息,我可以加上它作为答案。让我认真地了解一下,谁是那些在没有给出任何理由的情况下否决问题的完全白痴呢?我们将看看JavaCPP,它与JNA(JNAbablier)allready捆绑在一起,但不知何故,生成的jar中生成的类不包含任何函数。