上期技术 提供CTP接口连接,编译java版本
我的开源项目:https://gitee.com/gt_vv/javaCtp 有已经生成的动态库和jar包 以及对行情服务器交易服务器的一些基本实现 会持续维护,
点击进入
需要工具:swig 工具 官网下载 压缩包并解压 我用的是 3.0.12版本
ctpAPI文件:上期技术官网下载
解压后有各个版本 以window64 为例
这个文件进行解压 并自己手动创建ctp目录 和src 目录 和thosttraderapi.i文件
编辑刚创建的thosttraderapi.i文件
%module(directors="1") thosttradeapi
%{
#include "ThostFtdcTraderApi.h"
#include "iconv.h"
%}
%typemap(out) char[ANY], char[] {
if ($1) {
iconv_t cd = iconv_open("utf-8", "gb2312");
if (cd != reinterpret_cast<iconv_t>(-1)) {
char buf[4096] = {};
char **in = &$1;
char *out = buf;
size_t inlen = strlen($1), outlen = 4096;
if (iconv(cd, in, &inlen, &out, &outlen) != static_cast<size_t>(-1))
$result = JCALL1(NewStringUTF, jenv, (const char *)buf);
iconv_close(cd);
}
}
}
%feature("director") CThostFtdcTraderSpi;
%ignore THOST_FTDC_VTC_BankBankToFuture;
%ignore THOST_FTDC_VTC_BankFutureToBank;
%ignore THOST_FTDC_VTC_FutureBankToFuture;
%ignore THOST_FTDC_VTC_FutureFutureToBank;
%ignore THOST_FTDC_FTC_BankLaunchBankToBroker;
%ignore THOST_FTDC_FTC_BrokerLaunchBankToBroker;
%ignore THOST_FTDC_FTC_BankLaunchBrokerToBank;
%ignore THOST_FTDC_FTC_BrokerLaunchBrokerToBank;
%feature("director") CThostFtdcTraderSpi;
%include "ThostFtdcUserApiDataType.h"
%include "ThostFtdcUserApiStruct.h"
%include "ThostFtdcTraderApi.h"
接下来就是将ctp接口各个文件对应的java文件生成(属性,类名,调用关系不会发生改变,参照 上期技术的ctp开发文档可以使用)
cmd进入 刚解压的ctp版本 执行以下命令 , 514 警告 不用管 , 执行时间 30多秒左右
D:\ctp_java_dll_work_space\swigwin-3.0.12\swig.exe -c++ -java -package ctp.thosttraderapi -outdir src -o thosttraderapi_wrap.cpp thosttraderapi.i
会在src目录下生成对应的java文件
cmd进入src目录 执行javac 编译命令 编译成 jar包所需要的 .class文件
java 要配置环境变量 (1.8版本的jdk)
javac *.java
将生成的 .class文件 拷贝到ctp 下thost…的目录中cmd 回到之前 解压ctp版本的目录执行命令
jar cf thosttraderapi.jar ctp