范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Go通过调用java的jar包来解决go生态轮子不足的问题

  这两天有一个应用需要做一下附近的人,底层想采用lucene的lucene-spatial3d来做LBS,但go语言没有lucene的完整第三方包,轮子不足只能采用go调用java的方式解决。
  第一种思路是想采用Netty来建立一个服务,然后go采用网络请求的方式来调用服务接口,但这种方式需要常驻一个服务,虽然资源用不了多少,但也是会一直跑着一个进程,斟酌再三决定放弃这种思路。
  第二种思路是go直接调用java写的jar包,用的时候调用执行,用完不会有进程常驻,对服务器资源合理使用更优。下边就简单介绍一下此种方式的操作(具体用Lucene做LBS业务逻辑此文省去,此文重点介绍如何go调用jar包进行交互处理)。
  【Java工程】
  1、首先创建一个Maven工程,生成的pom.xml配置如下: <?xml version="1.0" encoding="UTF-8"?>     4.0.0    com.yurongbj   lucene_lbs   1.0-SNAPSHOT    lucene_lbs      http://www.yurongbj.com         UTF-8     1.7     1.7                     cn.hutool         hutool-all         5.8.0.M2                        org.apache.lucene         lucene-core         9.0.0                   org.apache.lucene         lucene-analysis-smartcn         9.0.0                   org.apache.lucene         lucene-queries         9.0.0                   org.apache.lucene         lucene-spatial3d         9.0.0                   org.apache.lucene         lucene-spatial-extras         9.0.0                  junit       junit       4.11       test                                              org.apache.maven.plugins             maven-jar-plugin             3.1.0                                                                            true                                                  com.yurongbj.App                                                                                 maven-assembly-plugin                                                            com.yurongbj.App                                                            jar-with-dependencies                                                                 maven-clean-plugin           3.1.0                                      maven-resources-plugin           3.0.2                             maven-compiler-plugin           3.8.0                             maven-surefire-plugin           2.22.1                             maven-install-plugin           2.5.2                             maven-deploy-plugin           2.8.2                                      maven-site-plugin           3.7.1                             maven-project-info-reports-plugin           3.0.0                         
  2、入口文件App.java package com.yurongbj;  import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.HexUtil;  /**  * 公司:御融(北京)科技有限公司  * 作者:softHardware  * 描述:用于建立附近的人索引和搜索,。  */ public class App  {     public static void main( String[] args )     {         if(args.length==0){             System.out.println( "error" );             return;         }         if(args.length==1){                 //将中文内容转换为16进制字符串,如果不转换直接输出,Go读取的中文解析内容会不正常。             String hex = HexUtil.encodeHexStr("缺少参数,至少2个参数", CharsetUtil.CHARSET_UTF_8);             System.out.println(hex);             return;         }                 String arg = args[0];         if(arg.equals("index")){             //获取内容,创建索引             System.out.println( args[1] );                     }         if(arg.equals("search")){             //获取内容,搜索附近5KM数据             System.out.println( args[1] );                     }             } }
  3、使用带依赖jar包打包命令进行编译打包
  命令:mvn assembly:assembly(注意在pom.xml中引入对应的插件maven-assembly-plugin)
  4、打包成功后,在工程目录target文件夹下即可看到生成的jar包:lucene_lbs-1.0-SNAPSHOT-jar-with-dependencies.jar,此文件即为下文GO工程中待调用的jar包。
  【Go工程】
  1、创建Go工程(具体创建方法请自行查阅Go工程创建方法)
  2、入口main.go文件调用测试 package main  import (     "encoding/hex"     "fmt"     "os/exec"      "github.com/gogf/gf/v2/os/gctx"     "github.com/gogf/gf/v2/util/gconv" )  func main() {     //调用刚才打包的jar包,此处故意传入一个参数来验证返回值为"缺少参数,至少2各参数"     cmdJava := exec.Command("java", "-jar", "lucene_lbs-1.0-SNAPSHOT-jar-with-dependencies.jar", "index")     out, err := cmdJava.Output()     if err != nil {         println("java error:", err.Error())     }         hexStr, hexErr := hex.DecodeString(string(out))     if hexErr != nil {         println("java hexErr:", hexErr.Error())     }     println("hexStr:", hexStr)     res := gconv.String(hexStr)          fmt.Printf("call java: %qn", res) }
  3、将生成的lucene_lbs-1.0-SNAPSHOT-jar-with-dependencies.jar文件拷贝到和main.go相同的目录下,执行命令进行测试: go run main.go
  输出如下内容则代表调用成功: call java: "缺少参数,至少2个参数"

买投影仪还是大屏幕电视?分界线是一万,因为红米98寸的定价就是一万,且不论效果如何,在这里想说的是如果想要液晶电视有大屏的观影体验,预算是一万起步的。在这个价格之下,想要大屏的体验,可能就得考虑使用投影仪净水器十大名牌现在,随着人们生活水平的提高,越来越多的家庭不再满足于家庭硬装,而是将目光放在了能够提升生活健康水平的家装项目上,净水器就在这样的风潮当中走入了千家万户。但是现在销售净水器的品牌太荣耀30更新鸿蒙系统2。0。0。165版本,小伙伴们赶紧下载升级哦荣耀30更新HarmonyOS2。0。0145版本已有好长时间了,上周有其他版本手机更新了最新的165版本,我心激动,赶紧去试了试,结果没有捂脸有点失望!今天终于推送了更新,赶紧下iOS15Beta6发布,功能增删抢先看苹果在今天凌晨向全体开发者用户发布了以下系统更新iOS15beta6(19A5325f)iPadOS15beta6(19A5325f)tvOS15beta6(19J5332e)wa大屏观赛才够爽!推荐七款3000元价位平板电视如今的电视越来越智能,价格也跟着猛涨。但大多数人还是会选择3000元价位的电视,画质功能等能满足使用需求,价格也能接受。下面推荐几款定位3K档位的平板电视,在各方面表现都很出色,性2021年上半年六大拍照手机闭着眼跟着买就对今天,我就来为大家盘点一下2021年上半年的十大拍照手机(产品发布时间为2021年1月至今)。如果各位感兴趣的话,不妨跟着我一起来感受一下这十款手机的拍照魅力。以下产品不分排名先后国产手机谁是卷王?太好看了,我说的是iQOO产品经理宋姐姐。如果你没看过,肯定见过。这个产品一发布,这个姐姐一登场,那全场真是嗨爆了!以至于人家根本就没有关心发布会到底是什么产品鼾睡害羞结果呢,其他苏宁818战报出炉小米夺冠无悬念,华为表现令人尊敬如果说618属于京东,双11属于天猫,那么818肯定就是属于苏宁的。作为线上最大电商平台之一,看着京东618天猫双11玩得那么嗨,苏宁当然不会落后就搞出一个818狂欢节。在2021好用的手机桌面便签app下载哪款?在人们使用手机的时候,经常会碰到各种各样的软件app,通过下载安装它们,就可以获得不同的功能。便签app是很多人都在使用的一种辅助工具,其中手机桌面便签app尤为受欢迎,好用的手机小米MIX4搭载的UWB技术是什么?为何它可能会颠覆智能家居行业?在小米十一周年的雷军年度演讲大会上,小米发布了时隔3年之久的小米MIX4手机,除了采用了前沿的屏下摄像头技术以外,还首次搭载了UWB技术。对于大部分人来说,UWB技术可以说十分的陌ROG新机还能这么玩?差评体验官现场演示个性视窗以及双腰键体验8月18日晚,ROG召开了ROG电音潮玩夜活动,正式带来了2021下半年的新旗舰ROG游戏手机5sPro,在外观配置屏幕以及操控等方面都作出了一定程度的更新。值得一提的是,此次RO
经常更新系统,对手机好不好?很高兴能够看到和回答这个问题!在我们日常使用中,经常见到手机更新。有些人天天想着给手机更新系统,有些人却不以为然。很多手机用户都想知道这个问题的答案在使用手机的时候我们经常会收到官围观!2021年最好的4款带有触控笔的平板电脑推荐画画者的最爱哈喽,您好!我是原呵呵,点点关注吧,更多精彩内容等着您最好的带有触控笔的平板电脑不仅适用于数字艺术家,也适用于照片编辑修图师插图画家和涂鸦师。随着触控笔技术不断变得越来越好,在电子2021。11。17每日更新电脑最新配置推荐与方向更多关注微信公众号装机不是程序猿CPUI510400F散热赛普雷冷山炫白主板微星H510M爆破弹内存影驰DDR430008G2固态映众500NVME显卡影驰1050TI4G电源航嘉济青竞争,特斯拉中国第二座工厂花落谁家11月6日,上海进博会期间,济南市委书记孙立成走访了特斯拉展位,与特斯拉中国区总经理王昊洽谈交流对接合作。孙立成表示,济南拥有支撑新能源汽车产业发展的坚实基础,出台了一系列支持新能晋能控股集团聚焦产业转型建设大项目好项目今年10月,由晋能控股集团与华为科技公司合作建设的全国煤炭行业首个科研创新人工智能计算中心在山西省晋城市金匠园区建成。建设过程中,晋能控股集团倒排工期加紧施工,从6月初动工开挖地基常见的CRM软件有哪些?谢邀,根据这个问题我从两方面进行回答,CRM有哪些功能和CRM有哪些品牌。一CRM软件有哪些功能目前的大部分完整的CRM系统一般都具备销售财务供应进销存服务员工等方面的管理,智云通vivo手机怎么选,哪款性价比高,哪款值得买,一篇文章来梳理覆盖更多价格档位,意味着消费者选择到的几率越大,所以几乎是所有手机品牌都会发布各种机型,主打各种功能。各种系列产品,让人眼花缭乱,难以选择。vivo手机,自从成立子品牌iQOO后,消费者真实评测全屋取暖器真的可以暖全屋吗?创作立场声明本次评测主要从消费者的角度来进行,其中也借助了一些测量仪器,希望可以帮助大家取暖器采购做参考,暖暖的过冬天如果不妥之处,也欢迎留言交流。Hello,大家好!我是山贼95年轻人和老年人玩手机的区别在哪里?年轻人和老年人玩手机的最大区别就是,老年人除接打电话外可以上网看看新闻,上头条发发评论写写文章,稍微年轻的老年人还可以用手机支付,上微信聊天,用手机拍照。而年轻人除了这些,就是上网滴滴妥协了,多地司机收入上涨,能维持多久?你想的太好了,司机收入上涨并不代表滴滴抽成减少了,滴滴会从乘客身上把失去的补回来,坑完乘客坑司机,这样的套路滴滴从来没有服过谁,滴滴不死天理难容羊少狼多时,辅以食,动以情。待来日成实验室只有1080的显卡,老师还想让发深度学习论文,也不给配置好的显卡怎么办?我日,第一次听说写论文需要显卡,我们办公都是用核显。能打字不?能查资料不?白让你用事儿那多捏云计算啊,比显卡便宜多了他研究的课题是最强显卡的分析与制作关键是你得说明白你是啥专业的,