1、C++调用java
①C++调用java,前面已经总结过了
②注意路径配置,注意来回传参的数据类型
③注意第三方jar包和dll文件的引用和位置
2、C++调用jar
①为了方便,对于不需要传参的java源码,可以使用封装jar包的方式进行调用
②Export(直接导出.class文件即可,封装一些第三方资源,在单独调用jar的时候也不对,还不如直接封装.class,然后第三方资源路径和jar包路径保持一致即可)
③把导出的jar包放在工程的相对路径上,这样可以调用源码中的相对路径,才不会报错
④用压缩包打开jar,修改配置文件(META-INF--->MANIFEST.MF--->添加程序进口和第三方jar包)
Class-Path: libtensorflow-1.6.0.jar Main-Class: com.picture⑤第一个是第三方jar,第二个是com包下的一个类(该com包下有好多类)
⑥cmd运行jar包即可(java -jar demo.jar)
⑦一些相对路径资源、第三方jar包、dll文件、jar包都放在同一路径下。(缺点是jar包被调用时候,是用cmd命令打开的,当作为子程序被调用时,会出现黑框框)
3、C++调用exe
①解决jar包的不足之处,不会出现黑框框
②下载exe4j来实现jar包的封装,导出exe
③打开界面,点击next
④选择"Jar in EXE" mode
⑤java项目名是demo,exe的存放路径和你java项目保持一致,方便调用相对路径资源
⑥添加exe的名字和生成exe的图标,不加也行。(第四步需要两处配置)
修改为64位,不然后报错,目前几乎电脑都是64位
⑦这一步骤比较重要
第一步:添加所有用到的jar(绝对路径)
第二步:添加添加主程序入口,项目下不止一个类
第三步:添加项目用到的第三方dll目录(相对路径)
总结:jar包会打包到exe中,后期运行exe文件可以删除jar,但是不能删除当前目录下的dll文件
dll文件在项目当前路径,添加当前路径文件夹即可
⑧设置运行该exe程序的jre的最低版本,最高版本可以不设置,然后配置jre
配置jre,已经默认是本地的jre,为了方便移植,首先把本地的jre拷贝到当前目录下,然后删除默认的前三项,添加相对路径下的jre
⑨直接finish即可,会生成exe文件(这时先别关闭exe4j,后面还有用),然后运行exe程序,会发现会有一个提示框(注册一下即可)
没有关闭的exe4j,现在可以直接返回到第一步进行注册,然后直接finish就行了,重新生成exe文件,不用程序配置了,很省事。
填写姓名和公司名以及注册码(前两个随便写,这里给出几个注册码)
A-XVK258563F-1p4lv7mg7sav
A-XVK209982F-1y0i3h4ywx2h1
A-XVK267351F-dpurrhnyarva
A-XVK204432F-1kkoilo1jy2h3r
A-XVK246130F-1l7msieqiwqnq
A-XVK249554F-pllh351kcke50
A-XVK238729F-25yn13iea25i
A-XVK222711F-134h5ta8yxbm0
A-XVK275016F-15wjjcbn4tpj
A-XVK275016F-15wjjcbn4tpj
⑩注册完,finish一次,重新生成exe文件,到这里就大功告成了。
4、java、jar、exe优缺点
①java需要整个项目
②jar只需要相对路径资源、dll、第三方jar包(不需要源码和class文件,.class文件封装在jar包中)
③exe只需要相对路径资源、dll(不需要jar包了,jar包被封装在exe中,为了方便移植需要添加jre)
5、jar生成exe注意事项
①用到的jar包路径添加
②用到的dll文件添加(没用到就算了)
③jre的添加(方便移植)
④修改为64位