我不知道這是否可行,但有沒有辦法使用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