当前位置:正文

白虎 做爱 Node.js调用java之node-java问题

发布日期:2025-03-21 09:16    点击次数:172

白虎 做爱 Node.js调用java之node-java问题

故事的发源是这么:白虎 做爱

技俩顶用ioredis封装的模块,在定时、大数据量写入redis的情况下,内存激增,若是不是我对ioredis使用姿势有问题的话,那么等于在这种残酷的情况下,node违反不住了,然后天然念念到了jedis,官方保举的redis的java客户端,大厂、线上齐在大齐使用,生态也止境的好。

关于咱们要在node中调用java,则基本需求是

(1)、java封装接口,到处jar,node调用jar中的接口,传参拿值;

(2)另一种相比少用,因为通用性不彊,node中chilld_process初始jar包,天然jar中需要有java主函数,然后就在另一个线程中初始起来了,就没node什么事情了。

本文主要讲的是第一种需求,因为这才是通用的使用门径。

1、环境搭建

nodejs基本环境是天然的了。

(1)装配java(jdk、jre),自行百度,并建立环境变量;

(2)装配python2版块;

双城之战在线观看

(3)全局装配node-gyp;

(4)全局装配window-build-tools;(由于下载下来的模块需要编译,是以需要这个器具,若是你自身装配了vs,就不需要这个东西,能自动检测到)

(5)装配node-java模块;

天然叫node-java,但模块自身是java

若是(1)~(3)你齐建立好了,然后在vscode中初始npm i java时还是出错的话,精熟的提议,灵通末端台初始,vscode可能存在一些权限问题,至少我碰见过这么的事情,然后按照这种门径就顺利了。

2、导出jar包

我使用的时idea,其实多样ide齐一个样,齐能搞,这里说一下基本法子:

(1)创建一个java project

(2) 导入有关jar包(Jedis为例)

新建一个jar文献夹,将jars放进去,然后导入技俩;

导入jar,点击技俩结构参加

然后聘用刚刚摒弃好的jars,点击勾选,阐述即可

然后不错竖立接口了,这里简便一个写入redis的接口

接下来点击技俩结构--》Artifact,点击左上加号--》form modules with dependencies

填写主类,这里改成接口类亦然不错的(手动改,无法聘用接口类)、点击完成、然后点击build--》build artifacts--》build

然后再技俩中的out文献夹就生成了jar包。

3、nodejs调用jar

平直看代码吧,这里仅仅很简便的,但很实用。 

还有许多使用门径,这里不逐一列出了,有了node的java模块,你也不错在node中进行java竖立了。

node-java文档 ,官方文档很详备,我天然英语好,然而亦然的确读不下去,挑我方感酷好酷好的学习即可。

4、心得

本文简便记载了node调用java的门径,在出产技俩中会增多许多可能,因为优秀的接口咱们齐值得使用,非论他是java还是c++。

这个经由中有几点预防事项:

(1)java模块的依赖问题,换台电脑还能不可用之类的事情,最起码要初始的机器需要java环境;

(2)高版块编译的jar,装有低版块java的node调用jar会报错;

(3)openJDK能否闲居调用恭候未来考据;

(4)jar不可在nodejs的多线程使用,这个问题有待揣摸。

5、后续考据

(1)java模块的依赖问题,换台电脑还能不可用之类的事情,最起码要初始的机器需要java环境;

这小数在其他机器上(windows)只需要装配同版块的java环境,况且将jvm.dll的旅途添加到环境变量path中即可。

(2)openJDK能否闲居调用(不错);

由于nodejs装配java模块的技巧需要编译且生唉成了一个.node,而.node并不跨平台,是以需要重新编译,在linux下使用java模块相同需要编译(java、javac、node-gyp,g++...)。

然而linux有些系统只装配了java,并莫得装配javac,是以需要装配javac,重新编译java模块源码。

然后就不错景色的使用了。

(3)开启多线程,只可有一个线程初始咱们封装的jar包;

经过考据,照实如斯,稽查官网,说是只可创建一个jvm,线程同属于一个程度,是以之。

片刻又会念念到,那多程度呢,表面上是不错的,考据之后照实如斯,程度之间相互防碍,是以不错创建多个jvm。

6、补充

中标麒麟下初始node调用java的预防事项

回首

以上为个东谈主训导白虎 做爱,但愿能给民众一个参考,也但愿民繁密多撑执剧本之家。





Powered by 松岛枫作品 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024