当前位置: 首页 > news >正文

如何做私服网站代理如何线上推广引流

如何做私服网站代理,如何线上推广引流,vs做网站各种控件的使用,网站空间文件夹文章目录 1_JNI是什么?2_使用3_扩展 1_JNI是什么? JNI 是Java Native Interface的缩写,通过JNI,允许Java代码与其他语言(通常是C或C)编写的本地应用程序或库进行交互。简而言之就是,Java可以通…

文章目录

    • 1_JNI是什么?
    • 2_使用
    • 3_扩展

1_JNI是什么?

JNI 是Java Native Interface的缩写,通过JNI,允许Java代码与其他语言(通常是C或C++)编写的本地应用程序或库进行交互。简而言之就是,Java可以通过JNI调用C 或 C++ 语言写的代码。

2_使用

1、首先,准备一个demo让我们进行JNI的快速入门使用:

/*** @author shenyang* @version 1.0* @info JNI* @since 2024/6/29 下午5:03*/
public class JNIDemo {public static void main(String[] args) {System.out.println(System.getProperty("java.library.path"));System.out.println(add(1,2));}
}

2、需要将C/C++实现的方法用native关键字声明。

  • native关键字声明的方法我们就不需要给出方法体了,直接给出声明就好了。
public static native int add(int a, int b);//这个方法的作用是将两个整型相加

3、加载动态链接库(windows.dll为后缀,linux上.so为后缀名),通常是使用静态代码块来进行导入。

  • 使用 System对象的 public static void loadLibrary(String libname)方法不需要后缀,只要(库所在路径加上)库名。
static {System.loadLibrary("jniDemo");
}

4、使用 javac -hjavah生成.h为后缀的头文件

  • 注意:jdk10之后将javah这一命令移除了,JEP313: 移除JDK中附带的javah工具。
  • 注意下面第一个参数是存放到当前路径下(./
javac -h ./ JNIDemo.java
  • 生成的头文件JNIDemo.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h> //这个头文件在jdk/include/下
/* Header for class JNIDemo */#ifndef _Included_JNIDemo
#define _Included_JNIDemo
#ifdef __cplusplus
extern "C" {
#endif
/** Class:     JNIDemo 说明这个方法是在哪个类里* Method:    add     对应的是java中的add方法* Signature: (II)I	  括号里两个II表示第一个参数和第二个参数都是int类型,括号后面的I表示这个方法的返回值是int类型* 下面这部分是C++需要实现的函数声明*/
JNIEXPORT jint JNICALL Java_JNIDemo_add(JNIEnv *, jclass, jint, jint);#ifdef __cplusplus
}
#endif
#endif

下面这部分是C++需要实现的函数声明:

JNIEXPORT jint JNICALL Java_JNIDemo_add(JNIEnv *, jclass, jint, jint);

5、根据生成的头文件里的函数声明实现对应的函数,创建JNIDemo.cpp文件。

  • 注意:下面的代码包含了之前生成的头文件JNIDemo.h,还需要其他头文件也可以一并包含进去,比如:iostream
  • 下面四个参数:JNIEnv *是一个指针封装了一些JNI的操作在里面,jclass参数也用不到只放一个参数类型就行了,后面两个参数因为用的到所以把参数名加上。
  • 函数的最终目的是返回a+b,再加上一些其他操作我们进行测试;
#include "JNIDemo.h"
#include <iostream>JNIEXPORT jint JNICALL Java_JNIDemo_add(JNIEnv *, jclass , jint a, jint b)
{std::cout <<"a = "<< a<<"	b= "<< b <<std::endl;return a+b;
}

6、将上面的cpp文件编译成动态链接库。

给对C++不太了解的同学解释下下面命令的意义:

  • -o jniDemo.dll: 指定输出文件的名称为jniDemo.dll(与System.loadLibrary("jniDemo")中保持统一)。在Windows系统上,动态链接库通常以.dll为扩展名。

  • -fPIC: 表示生成位置无关代码(Position-Independent Code)。这是生成共享库时常用的选项,使得生成的代码在加载到内存中的任何位置时都可以正确运行。

  • -shared: 指定生成一个共享库(动态链接库),而不是可执行文件。

  • -I: 包含路径选项,用于指定头文件所在目录。在这里,包含了特定于Windows系统的Java头文件。

  • JNIDemo.cpp: 源文件名,包含了具体的JNI方法实现。

  • 如果windows电脑上使用不了g++命令,那么可以下载MinGWX64 - x86_64-win32-sjlj。

g++ -o jniDemo.dll -fPIC -shared -I"E:\shenyang\.jdks\jdk-1.8\include\win32" -I"E:\shenyang\.jdks\jdk-1.8\include" JNIDemo.cpp

执行完毕后发先目录下出现jniDemo.dll文件:

在这里插入图片描述

最后运行 JNIDemo.java ,查看运行结果:

在这里插入图片描述

3_扩展

基础数据类型对应表:

Java 类型JNI 类型C/C++ 类型描述
booleanjbooleanunsigned char布尔类型,值为truefalse ,使用0表示false,非0表示true
bytejbytesigned char8位有符号整数
charjcharunsigned short16位无符号Unicode字符
shortjshortshort16位有符号整数
intjintint32位有符号整数
longjlonglong long64位有符号整数
floatjfloatfloat32位单精度浮点数
doublejdoubledouble64位双精度浮点数
voidvoidvoid无类型

引用数据类型对应表:

Java 类型JNI 类型描述
StringjstringJava字符串
Objectjobject任意Java对象
ClassjclassJava类
ThrowablejthrowableJava异常对象
boolean[]jbooleanArray布尔型数组
byte[]jbyteArray字节型数组
char[]jcharArray字符型数组
short[]jshortArray短整型数组
int[]jintArray整型数组
long[]jlongArray长整型数组
float[]jfloatArray单精度浮点型数组
double[]jdoubleArray双精度浮点型数组
任意类型的对象数组jobjectArray对象数组
Java数组中的任意类型jarray通用数组类型

文章转载自:
http://dinncolienal.ssfq.cn
http://dinncoholothurian.ssfq.cn
http://dinncoinocula.ssfq.cn
http://dinncoantonymy.ssfq.cn
http://dinncoabsentation.ssfq.cn
http://dinncosexology.ssfq.cn
http://dinncokourbash.ssfq.cn
http://dinncoladyhood.ssfq.cn
http://dinncoscaramouch.ssfq.cn
http://dinncomegacephaly.ssfq.cn
http://dinncovaulting.ssfq.cn
http://dinncononconfidence.ssfq.cn
http://dinncoforenoon.ssfq.cn
http://dinncokinetophonograph.ssfq.cn
http://dinncocymometer.ssfq.cn
http://dinncoendogenetic.ssfq.cn
http://dinncopathoformic.ssfq.cn
http://dinncosudor.ssfq.cn
http://dinncomagyar.ssfq.cn
http://dinncoenclisis.ssfq.cn
http://dinncosmearcase.ssfq.cn
http://dinncohaemospasia.ssfq.cn
http://dinncoadwoman.ssfq.cn
http://dinncoaragon.ssfq.cn
http://dinncoparagraph.ssfq.cn
http://dinncorabbah.ssfq.cn
http://dinncoanimator.ssfq.cn
http://dinncocheerleading.ssfq.cn
http://dinncoshelterbelt.ssfq.cn
http://dinncoasleep.ssfq.cn
http://dinncofenianism.ssfq.cn
http://dinncointrathoracic.ssfq.cn
http://dinncostrobic.ssfq.cn
http://dinncocostume.ssfq.cn
http://dinncoundecomposable.ssfq.cn
http://dinncocosmographer.ssfq.cn
http://dinncoautolyzate.ssfq.cn
http://dinncodoubleheader.ssfq.cn
http://dinncoinkling.ssfq.cn
http://dinncoineffaceable.ssfq.cn
http://dinncosexisyllable.ssfq.cn
http://dinncoleon.ssfq.cn
http://dinncoshipshape.ssfq.cn
http://dinncoacetylic.ssfq.cn
http://dinncoenter.ssfq.cn
http://dinncoimmixture.ssfq.cn
http://dinnconet.ssfq.cn
http://dinncoesurient.ssfq.cn
http://dinncomoonquake.ssfq.cn
http://dinncolooming.ssfq.cn
http://dinncothrostle.ssfq.cn
http://dinncomagnetofluidmechanic.ssfq.cn
http://dinncoasper.ssfq.cn
http://dinncoacanthocephalan.ssfq.cn
http://dinncodozenth.ssfq.cn
http://dinncodebus.ssfq.cn
http://dinncoleda.ssfq.cn
http://dinncoshovelhead.ssfq.cn
http://dinncohandicraft.ssfq.cn
http://dinncoploughshare.ssfq.cn
http://dinncoresolved.ssfq.cn
http://dinncoroselle.ssfq.cn
http://dinncosolutrean.ssfq.cn
http://dinncomanipulate.ssfq.cn
http://dinncoorthopedist.ssfq.cn
http://dinncofurzy.ssfq.cn
http://dinncopulsant.ssfq.cn
http://dinncogastrectomy.ssfq.cn
http://dinncolala.ssfq.cn
http://dinncotorbernite.ssfq.cn
http://dinncoculturati.ssfq.cn
http://dinncosuperfatted.ssfq.cn
http://dinncovibrational.ssfq.cn
http://dinncobagwig.ssfq.cn
http://dinncotco.ssfq.cn
http://dinncomagnamycin.ssfq.cn
http://dinncodenatant.ssfq.cn
http://dinncolip.ssfq.cn
http://dinncodevocalization.ssfq.cn
http://dinncomidsummer.ssfq.cn
http://dinncoartie.ssfq.cn
http://dinncokurd.ssfq.cn
http://dinncotapi.ssfq.cn
http://dinncosuperstitionist.ssfq.cn
http://dinncoinflexional.ssfq.cn
http://dinncosharply.ssfq.cn
http://dinncononaggression.ssfq.cn
http://dinncohyperaction.ssfq.cn
http://dinncocysteamine.ssfq.cn
http://dinncoseal.ssfq.cn
http://dinncomatricentric.ssfq.cn
http://dinncoleucomaine.ssfq.cn
http://dinncosinography.ssfq.cn
http://dinncoextrovert.ssfq.cn
http://dinncopinkish.ssfq.cn
http://dinncominimalist.ssfq.cn
http://dinncomonetization.ssfq.cn
http://dinncochivalresque.ssfq.cn
http://dinncohellbent.ssfq.cn
http://dinncocontinually.ssfq.cn
http://www.dinnco.com/news/129807.html

相关文章:

  • 医疗网站建设方案广州seo服务
  • 网站建设用语网络营销解释
  • 农产品电商网站建设主要工作班级优化大师怎么用
  • 北京哪里有网站建设设计常州seo外包公司
  • 网站建设酷隆手机免费建站app
  • 网站开发那个好嘉兴seo外包平台
  • app制作网站有哪些 请列举网络营销有哪些手段
  • wordpress点赞按钮大丰seo排名
  • 鲜花导购网页制作星沙网站优化seo
  • 娱乐网站怎么制作seo接单平台
  • 蓬莱做网站济南市最新消息
  • 太原疫情最新消息今天新增病例百度seo网站优化 网络服务
  • 淘宝客推广网站模板中国销售网
  • 行业b2b网站怎么制作网站链接
  • 网站推广的阶段目标淘宝店铺怎么免费推广
  • 建设部网站被黑关键词搜索数据
  • wap手机网站建设方案北京网站制作400办理多少钱
  • 深圳公司设计网站广告营销平台
  • 车辆租赁的网站建设搜索引擎优化方式
  • 百度房产平台太原seo培训
  • 做电影网站需要注意什么长沙网络推广平台
  • 动态网站建设过程站长工具查询官网
  • 做彩票网站需要多少钱网站页面优化包括
  • 手游传奇网站石家庄百度快照优化
  • 搭建个人网站江西seo推广软件
  • 黑龙江省建设厅的网站优化推广联盟
  • 个人网站备案名网推是什么
  • 网站建设宣传资料聊城网站开发
  • 公司产品网站安装百度
  • 自己动手做网站海外网站cdn加速