[英]How to pass a result from my java code to nodeJs?
我正在編寫一個算法來分析 Java 中的市場數據,以可視化我的數據,我想利用交易視圖中的現有圖表庫。 這個免費的圖表庫在 nodeJS 上運行。
我在理解如何用我的算法產生的數據填充它時遇到了很多麻煩。
例如,我的 Java 代碼返回一個“List< Candlestick >”對象,我如何將它發送到在 nodeJs 上運行的 Javascript 代碼?
如果有人願意就如何解決這個問題提供一些全球指導,我們將不勝感激。
我的假設是你有 java 代碼,你想要顯示的結果在 nodejs 上。
雖然此時建議從 API 調用數據,但我們還可以使用另一個選項來解決您的問題。 這是多語言編程的一個很好的例子。 我用過graalvm 。
通過 sdkman GraalVM 安裝
sdk install java 21.1.0.r11-grl
節點
gu install nodejs
兩個主要項目都位於這里https://gitlab.com/graalvm-java-to-nodejs
在我的情況下,將任何代碼添加到 java 庫中,我有一個類,它只返回 Point 列表,如下所示:
public class GraphData {
public List<Point> getPoints() {
return List.of(new Point(1, 1), new Point(3, 5));
}
}
其中Point
是一個用於保存 (x, y) 值的 POJO 類。
克隆這個 java 項目https://gitlab.com/graalvm-java-to-nodejs/graalvm-simple-java
並執行./gradlew clean build
這應該會給你一個可執行的 jar 可以執行 java -jar file.jar 命令.
現在,克隆https://gitlab.com/graalvm-java-to-nodejs
並安裝依賴項npm install
然后執行node --jvm --vm.cp=/home/ashish/IdeaProjects/graavlvm/java-lib-gvm/build/libs/java-lib-gvm-1.0-SNAPSHOT.jar bin/www
與java交互的相關代碼如下:
var GraphDataJavaRef = Java.type('in.silentsudo.GraphData');
var graphData = new GraphDataJavaRef();
var data = graphData.getPoints();
in.silentsudo.GraphData
類從提供給節點程序的 jar 文件加載,參數名為--jvm --vm.cp path/to/file.jar
導航到 localhost:3000 后,您應該會看到
Express Tutorial
Welcome to Express Tutorial
Response from Java class
[Point{x=1, y=1}, Point{x=3, y=5}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.