go能否直接调用java_Go调用Java的一个简单例子
由于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程序是最简单、最容易实现的方式。
go能否直接调用java_Go调用Java的一个简单例子相关推荐
- 用java写一个简单的区块链(下)
用java写一个简单的区块链(下) 2018年03月29日 21:44:35 java派大星 阅读数:725 标签: 区块链java 更多 个人分类: 区块链 版权声明:本文为博主原创文章,转载请标明 ...
- 用Java实现一个简单的考试系统
用Java实现一个简单的考试系统 需求分析 设计思路 编码实现 需求分析 该考试系统可以实现的功能和系统要求应该包括: 学生:登录.考试.考试后查看成绩 老师:出题目(往题库中添加新题目).批阅卷子( ...
- 用Java写一个简单的回合制游戏
用Java写一个简单的回合制游戏 创建基本属性,血量,名字,技能,技能伤害. 如下: public class One3 {//创建三个属性private String name;private St ...
- 如何用java编写一个简单的多人PK游戏
如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...
- Java实现一个简单的两人五子棋游戏(一) 系统设计
实现一个基本的单机五子棋功能 该五子棋棋盘大小为19*19的网格,玩家可以通过鼠标点击棋盘来落子,当出现五连珠时,提示一方胜出~ 1)模块划分 主模块:调用其他模块实现五子棋功能 棋盘模块:绘制五子棋 ...
- Java水果搬运问题_关于Java实现一个简单水果订购管理系统的几点问题
关于Java实现一个简单水果订购管理系统的几点问题 关于Java实现一个简单水果订购管理系统的几点问题 这个周用java写了一个简单的水果订购系统.其中遇上了几个问题 一.在编写过程中,我试图输入订购 ...
- java递归怎么写_什么是递归?用Java写一个简单的递归程序
什么是递归?用Java写一个简单的递归程序 递归的定义 递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为规模小的问题来解决. 递归的要素 自定义递归函数,并确定函数的基本功能 ...
- java编写存钱_用Java编写一个简单的存款
package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...
- 如何复制java卡,使用java做一个简单的集卡程序
使用java做一个简单的集卡程序 本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕 public class Test { public static void ...
最新文章
- [原创]Net实现Excel导入导出到数据库(附源码)
- GCC 链接时出现undefined reference to “...”时可能解决办法
- 梯度反传_反事实政策梯度解释
- dbm和mysql使用场景_mysql基本用法总结
- 40-400-035-运维-优化-pt-variable-advisor优化工具
- Java hook qpi_Java中内部类对象的创建以及hook机制
- Cython三分钟入门
- Unity Sunny Land开发流程(二)
- linux 将新密码邮件发送,linux脚本实现自动发送和收取邮件的设置方法
- 针对Intel芯片mac、win平台对cpu功耗、频率、电源等信息检测
- android wms 窗口,Android6.0 WMS(十一) WMS窗口动画生成及播放
- 方差、协方差、四分位差笔记
- 中山大学计算机在职研究生分数线,中山大学在职研究生考试分数线是多少?
- 2021年临颖一高高考成绩查询,2021年漯河高考状元是谁分数多少分,历年漯河高考状元名单...
- C#实现图片从数据库的上传和下载
- 基于python3 的百度图片下载器
- discuz如何实现自动提交url收录
- 为什么负负得正,减负数的意义
- 370 门免费编程与计算机科学在线课程
- MATLAB将图片做成视频
热门文章
- 传递函数的幅值计算公式_设积分环节的传递函数为G(s)=K/S,则其频率特性幅值M(w)=...
- 【ALGO】矩阵乘法
- mybatis-plus:向MySQL数据库写入二进制大数据
- 从苏宁电器到卡巴斯基第37篇:我与卡巴斯基的邂逅(中)
- 淘客项目coupons在 Linux 环境部署指南
- 算法014:判定字符串中字符是否唯一:实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
- Windows及Android倍速播放视频软件下载
- 软件著作权登记申请表填错之后如何修改?软著登记官费有没有续费或年费?软件登记常见问题汇总
- 3GPP USIM milenage算法code
- 咦,Oreo怎么收不到广播了?