我对此进行了研究,但结果要么已有 10 多年的历史,并且没有解释 JNI 是什么或者它是否是唯一的方法,或者结果是针对 C++ 或 C# 的。所以这是我的问题:
如何从 C 程序运行 Java 程序,以下面的代码为例?为了让 C 程序成功调用 Java,我对以下代码进行了哪些具体更改带参数的程序?
在CentOS终端中,当我在命令行中键入以下内容时,我能够成功运行Java程序:
java -cp . my.package.SomeClass 1 2 3
同样,在终端的同一文件夹中,当我在命令行中键入以下内容时,我能够成功运行 C 程序:
./hello
hello.c
的代码是:
#include <stdio.h>
main() {
printf("Hello World from C!\n");
}
如何修改 hello.c
的代码,以便它也使用参数 1 2 3< 运行
?my.package.SomeClass
/
例如,如何完成以下操作,但不会引发错误:
#include <stdio.h>
main() {
printf("Hello World from C!\n");
java -cp . my.package.SomeClass 1 2 3 //What is the right syntax here?
}
编辑
我最感兴趣的是展示如何调用方法的答案,例如 SomeClass.someMethod(1,2,3)
。
最佳答案
如果您想要做的全部就是运行java -cp。 my.package.SomeClass 1 2 3
从您的程序中,您可以只使用运行外部命令的 system
:
system("java -cp . my.package.SomeClass 1 2 3");
这是最简单的解决方案,但不太灵活 - 例如,除了给 Java 程序提供参数之外,您无法与它交互。
关于java - 如何从 C 程序运行 Java 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32130698/