NJ4X源码阅读分析笔记系列(一)——项目整体分析 1
NJ4X是什么
参见NJ4X的官网:http://www.nj4x.com/
Java and .Net interfaces to supported Forex brokers in a legal and robust way.
这个NJ4X是个乌克兰人写的,代码风格相当彪悍,不愧是战斗民族。
大题的架构图如下:
本文研究的NJ4X版本
2.6.2
NJ4X的整体架构
NJ4X由以下六部分组成:
- mt4if MT4语言的C++接口(MT4 Interface DLL)
- nj4x-ts NJ4X终端服务器(NJ4X Terminal Server)
- jfx MT4 终端API,JAVA版(JFX MT4 Terminal API for Java)
- nj4x MT4 终端API,.NET版 (NJ4X MT4 Terminal API for .Net)
- ea 专家系统 (JFX Expert Advisor)
- zero-term 具体不明,不知道是干什么,后期有时间会分析。
运行系统要求
官方推荐用windows,因为有C++的库。但是看Q&A上面也有说可以在Linux
下运行的,原理是采用WINE,我没有试过,有兴趣的可以自己去试试。MAC下也可以使用WINE,我没有试过。
参见:How can I run Terminal Server on WINE (Linux)?
用到的工具
- JDK1.7以上 我用的是1.8
- Visual Studio2013以上 我用的是2015
- Maven 3.3.9
- Nuget.exe 这个要说一下,现在的vs自带nuget,但是我不知道nuget的具体目录,只能单独下载一个。
- launch4j 这个是把jar可执行程序转换为exe的。
- 7Zip 负责解压的,用来解压zrv
项目转换
其中mt4if,nj4x这两个项目需要在VS转换为本地VS能够处理的。mt4if是C++
写的,nj4x是C#
写的。
转换的话就是在VS中打开,然后按照提示操作就行了,和我们用高版本VS打开低版本的VS开发的项目是一样的。
记住,转换之后就可以关闭VS了,VS可以歇菜了,不要用VS编译项目
项目编译
首先在项目根目录下的pom.xml
中设置好所需工具的路径,设置成为你自己的路径。
<zip7>C:\Program Files\7-Zip\7z.exe</zip7>
<devenv>C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe</devenv>
<mstest>C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe</mstest>
<launch4j.dir>C:\Program Files (x86)\Launch4j</launch4j.dir>
首先进入mt4if
模块中,mvn pacakge
编译好C++库。然后就可以在编译你需要的模块了。
如果想编译整个项目,就在根目录下mvn pacakge
,但是容易出错,你要重试好多次,过程比较麻烦。
最后,项目如图所示:
NJ4X源码阅读分析笔记系列(一)——项目整体分析 1相关推荐
- NJ4X源码阅读分析笔记系列(一)——项目整体分析
NJ4X源码阅读分析笔记系列(一)--项目整体分析 NJ4X是什么 参见NJ4X的官网:http://www.nj4x.com/ Java and .Net interfaces to support ...
- NJ4X源码阅读分析笔记系列(三)—— nj4x-ts深入分析
NJ4X源码阅读分析笔记系列(三)-- nj4x-ts深入分析 一.系统的工作流程图(模块级) 其工作流程如下(以行情获取为例): 应用端向Application Server发起连接 应用服务器调用 ...
- Vuex源码阅读分析
Vuex源码阅读分析 Vuex是专为Vue开发的统一状态管理工具.当我们的项目不是很复杂时,一些交互可以通过全局事件总线解决,但是这种观察者模式有些弊端,开发时可能没什么感觉,但是当项目变得复杂,维护 ...
- 《源码阅读》专栏系列开篇 - 当Java工程师的这几年
<源码阅读>专栏系列开篇 - 当Java工程师的这几年 2020年了,受疫情影响,开始在家坐起了"月子".利用这段时间梳理下自己的职业生涯规划. 职业生涯回顾 2013 ...
- 源码阅读分析 View的Touch事件分发
其实 Android 事件分发机制在早几年一直都困扰着我,那时候处理事件分发的自定义 View 脑子都是一片白,老感觉处理不好.后来自己看了 android 源码,也阅读了很多大牛的文章才算彻底明白, ...
- Scrapy源码阅读分析_1_整体框架和流程介绍
From:https://blog.csdn.net/weixin_37947156/article/details/74435304 Scrapy github 下载地址:https://githu ...
- Kubernetes 1.12.0 Kube-controller-manager之replicaset-controller源码阅读分析
前言 Kube-controller-manager组件最终启动了很多controller,本文将对其中的replicaset-controller的源码进行阅读分析. 启动replicaset-co ...
- Scrapy源码阅读分析_3_核心组件
From:https://blog.csdn.net/weixin_37947156/article/details/74481758 这篇这要是关于核心组件,讲解这些核心组件初始化都做了哪些工作.包 ...
- Scrapy源码阅读分析_2_启动流程
From:https://blog.csdn.net/weixin_37947156/article/details/74436333 使用 PyCharm 打开下载好的 Scrapy 源码(gith ...
最新文章
- win10下用Linux搭建pythonnodejs开发环境
- Tomcat 启动时 SecureRandom 非常慢解决办法
- 前前前世用计算机,前前前世
- ML之xgboost:利用xgboost算法(自带,特征重要性可视化+且作为阈值训练模型)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
- python中基本类型的连接组合和互相转换
- UVa 208-Firetruck
- javascript 事件练习:封装兼容性添加、删除事件的函数、addEventListener用法
- 在LLVM中编写Backend Pass的详细教程(1)
- JavaScript 小白手册
- 戴尔服务器找不到启动项,一个可以解决戴尔笔记本重装系统找不到引导或硬盘启动项方法...
- where 空集_实验七SQL的空值和空集处理.doc
- 汇编语言||存储单元,存储字长,存储字,存储容量的理解
- 软件测试面试题:你们公司的测试流程是怎么样的?
- MCGS 根据时间实现动态密码进行登陆
- 安卓APP的字体大小设置不受系统字体大小的影响
- 电商全平台订单管理OMS系统
- java.lang.IllegalArgumentException: Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are requir
- EGE基础入门篇(九):双缓冲与手动渲染
- (Java)对象克隆技术
- 产品级项目---银行物业管理系统源码
热门文章
- mysql查看指定全局变量_【全局变量】mysql查看全局变量以及设置全局变量的值...
- DFC Search In Depth-转
- 能用好小人的老板才算优秀
- 阿俊的花(天真版本)
- Spring框架介绍——第一章
- mysql 获取当前日期 所在周的周一和周日
- springboot毕设项目人机工程与交互体验实验室网站zo77m(java+VUE+Mybatis+Maven+Mysql)
- python医院管理系统代码_php医院管理系统,源码免费分享
- UGUI-- 图集制作
- 网页打不开的时候怎么办