1、发送报文(我这里用的是mr2)
MrUtil.mr2Send(mrMsg);
2、下载发送的配置类
首页——滑动到最下方资料下载——程序下载——下载对应系统的版本
3、整合到自己的项目里(因为要发布到服务器,所以windows和linux都需要)
4、在marpi中加入判断方法
static
{
String libName = "mrapi";
String systemType = System.getProperty("os.name");
boolean is64bit = false;
if (systemType.toLowerCase().indexOf("win") != -1) {
is64bit = System.getenv("ProgramFiles(x86)") != null;
} else {
is64bit = System.getProperty("os.arch").indexOf("64") != -1;
}
String libExtension = systemType.toLowerCase().indexOf("win") != -1 ? ".dll" : ".so";
//mrapi.dll 或 mrapi.so
String libFullName = libName + libExtension;
//temp地址
String nativeTempDir = System.getProperty("java.io.tmpdir");
log.info("systemType:" + systemType + "\tis64bit:" + is64bit + "\tlibExtension:" + libExtension + "\tlibFullName:" + libFullName + "\tnativeTempDir:" + nativeTempDir + "\tlibraryDir:");
InputStream in = null;
BufferedInputStream reader = null;
BufferedInputStream iniReader = null;
FileOutputStream writer = null;
FileOutputStream iniWriter = null;
String[] fileType = new String[8];
String resource = is64bit ? "/mrapi/" : "/mrapi/";
String iniResource = "ini"+File.separator;
if (systemType.toLowerCase().indexOf("win") != -1) {
fileType = new String[]{"mr2api.h", "mr3api.h", "mrapi.dll", "mrapi.h", "mrapi.lib"};
} else if (systemType.toLowerCase().indexOf("linux") != -1) {
fileType = new String[]{"mr3api.h", "mrapi.h", "mr2api.h", "libmrapi.so", "readme.txt"};
resource = is64bit ? "/mrapiLinux/" : "/mrapiLinux/";
libFullName = "libmrapi" + libExtension;
} else {
fileType = new String[]{"mr2api.h", "mrapi_log.conf", "libmrapi.so", "mrapi.h", "libinfo.txt", "history.txt"};
resource = is64bit ? "/hp64/" : "/hp32/";
libFullName = "libmrapi" + libExtension;
}
//新地址 C:\Users\坤坤\AppData\Local\Temp\mrapi
String extractedLibPath = nativeTempDir + resource;
String iniLibPath = nativeTempDir + resource + iniResource;
File libDir = new File(extractedLibPath);
File libDir2 = new File(iniLibPath);
if (!libDir.exists()) {
log.info("开始创建动态链接库存放的临时目录:" + extractedLibPath);
if (systemType.toLowerCase().indexOf("win") == -1) {
libDir.setWritable(true, false);
}
libDir.mkdirs();
}
if (!libDir2.exists()) {
log.info("开始创建动态链接库存放的临时目录:" + iniLibPath);
if (systemType.toLowerCase().indexOf("win") == -1) {
libDir2.setWritable(true, false);
}
libDir2.mkdirs();
}
log.info("resource:" + resource + "\tlibDir:" + extractedLibPath + "\tlibFullName:" + libFullName);
File extractedLibFile = new File(nativeTempDir + resource + File.separator + libFullName);
log.info(extractedLibFile.getPath());
File file;
String[] var15;
int var16;
int var17;
String fname;
if (!extractedLibFile.exists()) {
log.info("目标文件[" + extractedLibFile.getPath() + "]不存在开始拷贝文件...:");
try {
log.info(".....开始拷贝文件[ mrapi.ini ]到[" + nativeTempDir + iniResource + File.separator + "mrapi.ini]");
InputStream inputStream = mrapi.class.getResourceAsStream(resource + iniResource + "mrapi.ini");
log.info("获取文件路径为"+resource + iniResource + "mrapi.ini");
if (inputStream == null) {
log.info(".....拷贝文件[ mrapi.ini ]获取文件流为空....");
} else {
iniReader = new BufferedInputStream(inputStream);
File iniFile = new File(nativeTempDir + File.separator + resource + File.separator + iniResource + "mrapi.ini");
iniWriter = new FileOutputStream(iniFile);
for(byte[] buffer = new byte[1024]; iniReader.read(buffer) > 0; buffer = new byte[1024]) {
iniWriter.write(buffer);
}
if (inputStream != null) {
inputStream.close();
}
if (iniWriter != null) {
iniWriter.close();
}
log.info(".....拷贝文件[" + iniFile.getPath() + "]成功....");
}
var15 = fileType;
var16 = fileType.length;
for(var17 = 0; var17 < var16; ++var17) {
fname = var15[var17];
log.info(".....开始拷贝文件[" + fname + "]到[" + nativeTempDir + File.separator + fname + "]");
in = mrapi.class.getResourceAsStream(resource + fname);
if (in == null) {
log.info(".....拷贝文件[" + fname + "]获取文件流为空....");
} else {
reader = new BufferedInputStream(in);
file = new File(nativeTempDir + File.separator + resource + File.separator + fname);
writer = new FileOutputStream(file);
for(byte[] buffer = new byte[1024]; reader.read(buffer) > 0; buffer = new byte[1024]) {
writer.write(buffer);
}
if (in != null) {
in.close();
}
if (writer != null) {
writer.close();
}
log.info(".....拷贝文件[" + file.getPath() + "]成功....");
}
}
} catch (IOException var23) {
log.info(".....拷贝文件过程出现错误,错误信息为:" + var23.getMessage());
var23.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} else {
log.info("获取到路径文件:" + extractedLibFile.getPath() + "\t文件大小:" + extractedLibFile.length());
var15 = fileType;
var16 = fileType.length;
for(var17 = 0; var17 < var16; ++var17) {
fname = var15[var17];
file = new File(nativeTempDir + File.separator + resource + File.separator + fname);
if (file.exists()) {
log.info("获取到路径文件:" + file.getPath() + "\t文件大小:" + file.length());
}
}
}
log.info("System.load:" + extractedLibFile.getPath());
System.load(extractedLibFile.getPath());
}