如何获取Java运行时的数据位数?

有时候Java运行时需要加载一些动态链接库,而动态链接库通常会根据运行平台分为X86和X64,即32位版本和64位版本。

这时就需要根据Java的运行平台来加载不同的动态链接库,注意,这里的运行平台不是指操作系统的平台,而是指Java运行时的数据位数。例如,64位的windows也可以安装32位的JDK,此时Java的运行平台是32位,而非64位。

 

如何加载不同版本的动态链接库,通常的做法是,代码上写死,在不同的运行平台上放置同名,但位数不同的动态链接库文件。

System.loadLibrary("opencv_java2413");

这样的做法搞得我很烦,因为我的软件要给很多用户使用,这些人有的安装的是32位的JDK,有的安装的是64位的JDK。我只能打两个包,给不同的用户分别提供64位版本和32位版本。

 

更好的做法是,在库目录中同时放置32位和64位的动态链接库文件,当然,两个文件将采用不同的命名。然后程序自行判断运行平台,根据平台位数加载不同的动态链接库文件,这样,一次打包,软件就能适用于不容平台了。

		String dataModel = System.getProperty("sun.arch.data.model");
		
		if("64".equals(dataModel))
		{
			System.loadLibrary("opencv_java2413_64bit");
		}
		else
		{
			System.loadLibrary("opencv_java2413");
		}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值