在开发过程中难免会用到写一个简单的main方法并且需要在liunx环境中进行代码方法测试。
方法中却需要引用到额外的jar包。正常逻辑都是新建项目写主方法,打包部署到服务器上。也可以简单解决,不需要新建项目。
如下例子:我需要调用liunx环境下的.so库,需要引用到jna.jar包。进行调用。
这时候我只想知道jna包是否好用,先写个简单的java测试方法:
package com.weimi.proto.utils;
//import jnr.ffi.Library;
import java.util.Properties;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
public class CaTest {
public interface CLibrary extends Library {
String GenSign(String pri,String msg,int leng);
}
public static void main(String[] args)
{
String systemType = System.getProperty("os.name");
System.out.println("systemType:"+systemType);
// CLibrary lib = (CLibrary) Native.load("test", CLibrary.class);
CLibrary lib = (CLibrary) Native.load("jcAPI", CLibrary.class);
String hash = "b4adfa844fb516906bb3b50f879700d75a9fe49add88e5730489971d9e6a764f";
String priKey = "fa0a059eece8222586a59f67b546bfae14ff72596d71ed8ec59b4c06d34fc3b4";
byte addr = 't';
String a = lib.GenSign(priKey,hash,hash.length());
// int b = lib.CgenBs58Addr(priKey,1,addr,1);
// int c = lib.CPPgenPairKey("ad","as");
System.out.println("a=" + a);
System.out.println("end");
}
}
写完之后,在CaTest.java同级目录下新建一个lib包。放入jna.jar包。目录如上
放好之后。先执行: javac -classpath ./lib/jna.jar -d . CaTest.java 加载lib下的jna包。
执行完成之后执行:java -Djava.ext.dirs=lib com/weimi/proto/utils/CaTest
这里的 com/weimi/proto/utils是java类的package头文件。
执行完成看是否有数据输出,并且同目录下会多出com的文件,最里面是编译的class文件