我不知道这是否可行,但有没有办法使用JNI(Java Native Interface)使用.java文件调用.c文件的主要功能?例如有没有办法使用JNI调用本地主函数?
伪代码:再次
/*This is the .c file*/
int main(int argc, char* argv[]){
File pFile;
pFile = fopen(argv[1],"r"]);
fclose(argv[1]);
}
伪代码:
/*This is the .java file*/
public class maincpy{
static
{
System.loadLibrary("maincpy");
}
public native int maincpy(int argc, char* argv[]); //
public static void main(String[] args){
maincpy c = new maincpy();
c.main(2,"somefile.txt");
}
}
我知道我写的是不正确的,因为我得到的错误使用的char * argv的[]作为一个参数本地功能。但是我希望这可以让我想到我想要做的事情。 任何帮助,将不胜感激。
好问题,我不明白为什么它不应该是可能的...这是一个像其他任何功能。但这是一件奇怪的事情。使用“ProcessBuilder”不是更简单吗? – fge
也许你可以有一个'本地mainAdapter(int argc,char [] [] argv)',将'argv'引脚或复制到一个指针,然后调用'main'。 – johnchen902