Java 关于CoolProp的调用

CoolProp 是一个开源的能源计算类库 但是其中需要用java原生native方法但是这里就需要一个类库,但是官网上给的类库(.dll)没有加包名,但是其内部编译没带类名称只能在maven仓库下的java包下 但是这样就给我们调用带来了困难 因为如果我们不写包名的话默认本包,给我们调用带来了困难
其解决方法如下
第一个方法:
我们可以用 java的反射机制来调用类下的方法

我只实现了第一个方法,

其源码在csdn的仓库上:
https://codechina.csdn.net/qq_40539437/cloud.git
其代码是
在这里插入图片描述希望可以帮到你

由于官网上下载的只试用于windows,但在linux并不使用,于是我和团队花了1天去搞这个linux上可执行的文件libCoolProp.so

一.打包libCoolProp.so文件

1.下载代码上Coolprop官网下载 仓库上的代码(git clone https://github.com/CoolProp/CoolProp --recursive)详情可以查看官网(http://www.coolprop.org/coolprop/wrappers/Java/index.html)

(注意:如果只下载官网上已经成功打包的zip文件是不行的,因为里面依赖项较多,zip包里有的文件缺失导致编译失败)

2.linux 上需要的环境

cmake、git、g++、p7Zip、libpython-dev(版本大于等于2.7)、swig、python-six(版本与libpython-dev一致(差不多))、JDK

3.在下载CoolProp的文件夹下创建build文件夹

mkdir -p CoolProp/build && cd CoolProp/build

4.在build文件夹下用cmake 执行makefile文件对项目进行构建

cmake .. -DCOOLPROP_JAVA_MODULE=ON -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Release

5.对项目进行打包 之后在build文件夹下就会出现.so文件

cmake --build .

二.在Docker上部署服务(采用DockerFile的形式)

1.准备相关的配置文件(*.yml,编译好的jar包,Dockerfile,Dockerfile.jc)

(1)*.yml就是项目的配置文件

(2)编译好的jar包就是项目的jar包

(3)DockerFile

FROM 600ly/jre8-with-gcc:0.1

RUN mkdir /app && mkdir /cfg

COPY ./包名.jar /app/app.jar
COPY ./application.yml /app/application.yml
COPY ./application-druid.yml /app/application-druid.yml
COPY ./libCoolProp.so /usr/lib/libCoolProp.so


RUN chmod -R 0666 /app && chmod -R 0666 /cfg

################################

EXPOSE 8083
WORKDIR /app
CMD ["java", "-jar", "./app.jar"]

(4)Dockerfile.jc

FROM gmaslowski/jre:8

RUN apk add --no-cache g++

2.构建项目依赖

sudo docker build -t 600ly/jre8-with-gcc:0.1 -f ./Dockerfile.jc .

3.构建项目

sudo docker build -t esifs:0.1 .

4.运行项目

sudo docker run --name=esifs-test -d -p 21621:8083 esifs:0.1

5.查看日志

sudo docker logs -f esifs-test

三、需要注意的
在windows上用的是官网上直接下载的CoolProp.dll文件

而在linux上用的是libCoolProp.so文件

两者的差别很大

Windows:直接静态初始化lib下CoolProp.dll文件即可

Linux:

1.在java代码中虽然我们生成的文件是libCoolProp.so但是静态引用的名字必须是CoolProp

2.在构建的时候要把libCoolProp.so文件放到容器内部的/usr/lib下

如果闲打包麻烦可以直接上我的CSDN上的git下载 我以提供在跟项目的package文件夹中

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值