
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)行測(cè)試。(在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下。
以上就是小編今天的分享了,希望可以幫助到大家。
