golang調(diào)用java是什么,讓我們一起了解一下?
golang是一種靜態(tài)強(qiáng)類型、編譯型語言。功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計(jì)算,golang調(diào)用java就是接收一個(gè)參數(shù),然后輸出一行結(jié)果。
由于Java世界里有非常豐富的開源應(yīng)用模型和輪子,而這些正是Go世界里面最缺乏的東西,所以我首先考慮的就是如何在Go里面調(diào)用現(xiàn)有的Java代碼。
我們用一個(gè)簡單的Go調(diào)用Java的例子,來進(jìn)行測試。(在winxp環(huán)境下能夠正常運(yùn)行)這段代碼比較簡單,就是在Go代碼里面去call一個(gè)叫Hello的java對(duì)象。而這個(gè)Hello?.java功能也非常簡單,就是接收一個(gè)參數(shù),然后輸出一行結(jié)果。
//?run_java package?main ? import?( "fmt" "os/exec" ) ? /** *?調(diào)用一個(gè)Hello.class,并接收一個(gè)參數(shù) */ func?callJava(){ cmd?:=?exec.Command("java","Hello","tom") out,err?:=?cmd.Output() if?err?!=?nil?{ println("error:",err.Error()) } fmt.Printf("call?java?class?Hello:?%q\n",?string(out)) ? } func?main()?{ fmt.Println("Test?Call?Java?function!") callJava() } ? /*?Hello.java public?class?Hello{ public?static?void?main(String[]?args){ if(args.length==0) System.out.println("hello?my?world!"); else System.out.println("hello?my?world!?"+args[0]); } }*/
注意:為了能夠運(yùn)行我的例子,需要把Hello.class放在和 run_java的可執(zhí)行文件同樣的目錄下。例如, run_java.exe在d:\goproject下,那么Hello.class也要在d:\goproject下。
以上就是小編今天的分享了,希望可以幫助到大家。