Go调用Java的一个简单例子
2012-06-26 16:21
465 查看
由于Java世界里有非常丰富的开源应用模型和轮子,而这些正是Go世界里面最缺乏的东西,所以我首先考虑的就是如何在Go里面调用现有的Java代码。早上写了个简单的Go调用Java的例子,在winxp环境下能够正常运行。这段代码比较简单,就是在Go代码里面去call一个叫Hello的java对象。而这个Hello .java功能也非常简单,就是接收一个参数,然后输出一行结果。
调用的初始感觉还行,当然还需要后面做更复杂的案例测试。具体的代码如下:
// run_java
package main
import (
"fmt"
"os/exec"
)
/**
* 调用一个Hello.class,并接收一个参数
*/
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]);
}
}*/
注意:
为了能够运行我的例子,需要把Hello.class放在和 run_java的可执行文件同样的目录下。例如, run_java.exe在d:\goproject下,那么Hello.class也要在d:\goproject下。
-------------------------------------------------
2012-07-03
找到一款开源的GoJVM框架,可以在Go程序里面实例化一个java class,并调用 java class 里面的方法。 老外真是牛, GoJVM 正是我想要的东西。有些遗憾的是GoJVM目前支持比较简单的JAVA对象,而且已经有快一年没有更新了。感兴趣的朋友可以自己去下载学习一下。
--------------------------------------
2012-07-04
看来有些人还是没看懂程序,那我就给没看懂程序的朋友再讲解一下吧。写这个例子是为了探索Go调用Java代码的可行方式。而这个例子是演示了在同一个进程内,Go程序如何与Java程序完成信息交换的。首先,在同一个进程里,Go程序启动JVM,并加载Java程序Hello.class,并发送参数“tom”,Java程序Hello.class在接收到消息后,完成运算后通过控制台向Go程序返回结果,然后Go程序把返回结果打印出来。这种Go 在同一个进程内调用Java程序是最简单、最容易实现的方式。
调用的初始感觉还行,当然还需要后面做更复杂的案例测试。具体的代码如下:
// run_java
package main
import (
"fmt"
"os/exec"
)
/**
* 调用一个Hello.class,并接收一个参数
*/
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]);
}
}*/
注意:
为了能够运行我的例子,需要把Hello.class放在和 run_java的可执行文件同样的目录下。例如, run_java.exe在d:\goproject下,那么Hello.class也要在d:\goproject下。
-------------------------------------------------
2012-07-03
找到一款开源的GoJVM框架,可以在Go程序里面实例化一个java class,并调用 java class 里面的方法。 老外真是牛, GoJVM 正是我想要的东西。有些遗憾的是GoJVM目前支持比较简单的JAVA对象,而且已经有快一年没有更新了。感兴趣的朋友可以自己去下载学习一下。
--------------------------------------
2012-07-04
看来有些人还是没看懂程序,那我就给没看懂程序的朋友再讲解一下吧。写这个例子是为了探索Go调用Java代码的可行方式。而这个例子是演示了在同一个进程内,Go程序如何与Java程序完成信息交换的。首先,在同一个进程里,Go程序启动JVM,并加载Java程序Hello.class,并发送参数“tom”,Java程序Hello.class在接收到消息后,完成运算后通过控制台向Go程序返回结果,然后Go程序把返回结果打印出来。这种Go 在同一个进程内调用Java程序是最简单、最容易实现的方式。
相关文章推荐
- 动态调用一个类的简单例子(java反射)
- Java产生死锁的一个简单例子
- 看JAVA序列化的性能 -- 一个简单的例子
- 一个初级例子讲述C和CPP在JNI中调用安卓Java代码
- ABAP--一个极好的调用外部java程序的Search Help Exit的实例(RFC好例子)
- java动态代理--一个简单的例子
- 转:jsp 调用java简单例子
- 一个简单的例子,证明JAVA参数是通过值传递
- java写一个死锁的简单例子
- android java 打印调用堆栈的一个简单方法
- 一个简单的客户端调用xmlHttp的ajax例子
- Java网络爬虫 - 一个简单的爬虫例子
- 一个简单例子让你彻底理解java回调机制
- java动态代理--一个简单的例子
- 一个java解析xml的简单例子
- Google PB协议学习记录--一个简单的例子--如何编译.proto文件为.java文件
- Java中使用正则表达式的一个简单例子及常用正则分享
- *JAVA调用DLL简单小例子*
- Jni 简单实战 写一个c调用java的辅助类
- java中类集的应用,简单的一个图书超市的例子