由于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的一个简单例子相关推荐

  1. 用java写一个简单的区块链(下)

    用java写一个简单的区块链(下) 2018年03月29日 21:44:35 java派大星 阅读数:725 标签: 区块链java 更多 个人分类: 区块链 版权声明:本文为博主原创文章,转载请标明 ...

  2. 用Java实现一个简单的考试系统

    用Java实现一个简单的考试系统 需求分析 设计思路 编码实现 需求分析 该考试系统可以实现的功能和系统要求应该包括: 学生:登录.考试.考试后查看成绩 老师:出题目(往题库中添加新题目).批阅卷子( ...

  3. 用Java写一个简单的回合制游戏

    用Java写一个简单的回合制游戏 创建基本属性,血量,名字,技能,技能伤害. 如下: public class One3 {//创建三个属性private String name;private St ...

  4. 如何用java编写一个简单的多人PK游戏

    如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...

  5. Java实现一个简单的两人五子棋游戏(一) 系统设计

    实现一个基本的单机五子棋功能 该五子棋棋盘大小为19*19的网格,玩家可以通过鼠标点击棋盘来落子,当出现五连珠时,提示一方胜出~ 1)模块划分 主模块:调用其他模块实现五子棋功能 棋盘模块:绘制五子棋 ...

  6. Java水果搬运问题_关于Java实现一个简单水果订购管理系统的几点问题

    关于Java实现一个简单水果订购管理系统的几点问题 关于Java实现一个简单水果订购管理系统的几点问题 这个周用java写了一个简单的水果订购系统.其中遇上了几个问题 一.在编写过程中,我试图输入订购 ...

  7. java递归怎么写_什么是递归?用Java写一个简单的递归程序

    什么是递归?用Java写一个简单的递归程序 递归的定义 递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为规模小的问题来解决. 递归的要素 自定义递归函数,并确定函数的基本功能 ...

  8. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  9. 如何复制java卡,使用java做一个简单的集卡程序

    使用java做一个简单的集卡程序 本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕 public class Test { public static void ...

最新文章

  1. [原创]Net实现Excel导入导出到数据库(附源码)
  2. GCC 链接时出现undefined reference to “...”时可能解决办法
  3. 梯度反传_反事实政策梯度解释
  4. dbm和mysql使用场景_mysql基本用法总结
  5. 40-400-035-运维-优化-pt-variable-advisor优化工具
  6. Java hook qpi_Java中内部类对象的创建以及hook机制
  7. Cython三分钟入门
  8. Unity Sunny Land开发流程(二)
  9. linux 将新密码邮件发送,linux脚本实现自动发送和收取邮件的设置方法
  10. 针对Intel芯片mac、win平台对cpu功耗、频率、电源等信息检测
  11. android wms 窗口,Android6.0 WMS(十一) WMS窗口动画生成及播放
  12. 方差、协方差、四分位差笔记
  13. 中山大学计算机在职研究生分数线,中山大学在职研究生考试分数线是多少?
  14. 2021年临颖一高高考成绩查询,2021年漯河高考状元是谁分数多少分,历年漯河高考状元名单...
  15. C#实现图片从数据库的上传和下载
  16. 基于python3 的百度图片下载器
  17. discuz如何实现自动提交url收录
  18. 为什么负负得正,减负数的意义
  19. 370 门免费编程与计算机科学在线课程
  20. MATLAB将图片做成视频

热门文章

  1. 传递函数的幅值计算公式_设积分环节的传递函数为G(s)=K/S,则其频率特性幅值M(w)=...
  2. 【ALGO】矩阵乘法
  3. mybatis-plus:向MySQL数据库写入二进制大数据
  4. 从苏宁电器到卡巴斯基第37篇:我与卡巴斯基的邂逅(中)
  5. 淘客项目coupons在 Linux 环境部署指南
  6. 算法014:判定字符串中字符是否唯一:实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
  7. Windows及Android倍速播放视频软件下载
  8. 软件著作权登记申请表填错之后如何修改?软著登记官费有没有续费或年费?软件登记常见问题汇总
  9. 3GPP USIM milenage算法code
  10. 咦,Oreo怎么收不到广播了?