JAVA判断32位还是64位,调用不同的DLL(转)

源:JAVA判断32位还是64位,调用不同的DLL

通过获取sun.arch.data.model可判断是32还是64的JAVA

将32或者64位的DLL放不同的目录,实现自适应调用DLL

  Properties props = System.getProperties();
  String bits=String.valueOf(props.get("sun.arch.data.model"));  

  String path = IMyNative.class.getResource("/").getPath() + "dll"+bits;
  System.out.println(path);
  // path=path.substring(1,path.length()).replace("/", "\\");
  File file = new File(path + "/MyNative.dll");
  System.out.println(path);
  System.load(path + "/MyNative.dll");
  NativeLibrary.addSearchPath("MyNative.dll", path);

JNA需要以下包:

jna.jar   platform.jar

下载地址:/Files/wasp520/lib.rar

时间: 2025-01-11 21:51:54

JAVA判断32位还是64位,调用不同的DLL(转)的相关文章

C#判断操作系统是32位还是64位(转)

1 根据句柄长度判断操作系统是否为64位操作系统 public static bool IsRunningOn64Bit { get { return IntPtr.Size == 8; } } 2 根据句柄长度判断操作系统是否为64位操作系统(不安全代码) public static unsafe bool IsRunningOn64Bit { get { return (sizeof(IntPtr) == sizeof(long)); } } 将项目做如下设置:项目属性对话框->配置属性->

Linux判断CPU是32位还是64位,判断系统是32位还是64位

from:http://www.ipcpu.com/2010/08/linux-cpu-32-64/ 本文仅限于服务器CPU和Linux系统讨论,与台式电脑.笔记本无关. 32位.64位不能乱装,64的能装32位的,因为64位的CPU可以兼容32位,32位的装不了64位的.最近部署了MongoDB,系统是32位的提示会有最大文件2G的限制.还有最常见的问题32位系统不支持4G以上内存,即使打PAE效率也受影响. 1.判断CPU是32位还是64位 这个问题比较有意思,网上给出的办法都是判断了系统的

VC++ 判断当前系统为32位还是64位

尝试了在VC++环境下判断系统为32位还是64位的方法,亲测有效!提供的函数如下 BOOL IsWow64() { typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS fnIsWow64Process; BOOL bIsWow64 = FALSE; fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandle

如何判断JDK是32位还是64位

第一种方法 在CMD窗口中使用java -version 命令进行查看 如果是64位的则会显示 Java HotSpot<TM>64-Bit 字样,32位的则没有类似信息. 注:这是Sun的JDK,其它版本的JDK不知道输出会是什么样子的 第二种方法 String arch = System.getProperty("sun.arch.data.model"); System.out.println(arch); 使用如上代码即可输出是32位还是64位的: 第三种方法 在C

32位和64位dll判断

如何判断一个dll文件是32位还是64位? 1. 开发中经常会使用到VC的一个工具 Dependency Walker用depends.exe打开dll,文件名前有64标示的即为64位. 但是这个方式不是万能的,只能简单判断.很多都判断不出来.比如64位系统下 C:\Windows\System32\msvcrt.dll 2. 使用visual studio开发工具命令dumpbin一般位于vs安装目录bin子目录下,如C:\Program Files (x86)\Microsoft Visua

关于32位和64位部署出现C#调用delphi动态库DLL不成功的问题

由于项目中调用了动态库,这些动态库放在C:\Windows\System32下面,但是当部署到了64位的机器上可能就有问题了,最近这个问题就纠结了半天,在本机32为系统上测试动态调用ddl成功了,部署到64位Window Server2008上面也没问题,可是为什么到了64位的WIN7系统上出了问题呢?        最后才发现原来原来是DLL的位置不对,那么DLL到底该放到那呢?        如果细心的你,你会发现在C:\Windows\目录下面有两个文件夹:System目录和System3

如何判断系统是32位还是64位的linux系统

如何判断系统是32位还是64位的linux系统 某日,需要下载个安装包,忽然忘记了自己的系统是32位还是64位的系统了,一时想不起来怎么查看时32位还是64位,呵呵,随便百度下,就发现有好多方法,这里记录下,方便日后查询: 第一种: 12345 [root@CentOS62 ~]# uname -mi686 [root@436704 ~]# uname -mx86_64 第二种: 12345 [root@CentOS62 ~]# file /sbin/init/sbin/init: ELF 32

判断应用程序是32位还是64位

VC++检测可执行程序DLL.EXE等是32位还是64位 1.首先介绍PE结构 Windows系统下的可执行文件,是基于Microsoft设计的一种新的文件结构,此结构被称之为PE结构.PE的意思是Portable Executable(可移植的执行体),所有Win32执行体都是用PE文件格式,其中包括SYS.DLL.EXE.COM.OCX等.(不管是学习逆向.破解还是安全,了解PE文件格式都是非常必要的.) PE文件的第一个部分是IMAGE_DOS_HEADER,大小为64B,这里面有两个重要

判断操作系统是32位还是64位

1判断操作系统是32位还是64位 //方法I: BOOL IsWow64() { //函数IsWow64Process()用于确定指定进程是否运行在64位操作系统的32环境(Wow64)下 //如果该进程是32位进程,运行在64操作系统,该值为true,否则为false,具体如下: //32bit程序跑在32bit系统下,返回0. //32bit程序跑在64bit系统下,是wow64模式,返回1. //64bit程序跑在64bit系统下,那么不是wow64模式,返回0 BOOL bIsWow64