32bit-JNative的问题,提示32位DLL不能再64位平台上运行

问题描述

JNative的问题,提示32位DLL不能再64位平台上运行

我使用JNative调用的C++自己写的DLL动态库文件,我在测试项目中运行的毫无问题
,使用语句输出位数信息是32位
Properties props = System.getProperties();
String bits=String.valueOf(props.get("sun.arch.data.model"));

但放到我的项目中报32位DLL不能在64位平台下运行 输出位数信息却变成了64
以下是错误代码:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:WindowsSystem32ACRSupport.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at com.enss.chk.util.JNativeUtil.(JNativeUtil.java:11)
at com.enss.chk.form.Tray.load(Tray.java:153)
at com.enss.chk.form.Tray.(Tray.java:95)
at com.enss.chk.entity.Test.main(Test.java:43)

![图片说明](http://img.ask.csdn.net/upload/201505/19/1432006216_326320.png)

这个项目用到了JFrame和一些jar,是这两者的问题吗?

解决方案

好吧、机智的我灵机一闪自己给解决了~~~

我刚才仔细看了下那个项目和测试项目,发现有个不同之处,项目刚建立时候刚下的myEclipse,里面的JDK是1.6的

后期我用到了一些新的东西,自己下了个jdk1.7,然后刚才我把那个JavaSE1.6的引用试着删除了,

再次输出位数信息发现成功变成了32位,项目也能正常使用了。

莫非这是JDK1.7的某种特性?如果大家遇到这个问题的,借鉴下我的经验,能帮到谁的话我就很开心了

时间: 2024-12-02 23:21:45

32bit-JNative的问题,提示32位DLL不能再64位平台上运行的相关文章

AntiVC.dll有没有64位系统下的版本?

问题描述 各位大侠,请问AntiVC.dll有没有64位系统下的版本? 解决方案 解决方案二:没有,你可以强制程序集以x86方式运行嘛.解决方案三:谢谢回复!问题在于只能加载,但是提示找不到入口点DllRegisterServer

利用winre在windows的32位的硬盘安装64位系统

利用winre在windows的32位的硬盘安装64位系统,最常见的是下面几个场景 1 在32位的xp/http://www.aliyun.com/zixun/aggregation/19058.html">2003下安装64位的vista/2008/win7/2008r2   a:多启动   b:单启动,不保留原有的xp/2003 2 在32位的vista/2008下安装64位的vista/2008/win7/2008r2   a:多启动   b:单启动,不保留原有的vista/2008

在windows 64位操作系统上运行32位的vbscript的方法_vbs

今天在2008 r2 64位的服务器系统上,运行vbs文件的时候如下提示 --------------------------- Windows Script Host --------------------------- 脚本: C:\Users\Administrator\Desktop\vbs_cf.vbs 行: 10 字符: 1 错误: 未找到提供程序.该程序可能未正确安装. 代码: 800A0E7A 源: ADODB.Connection 在2003上运行正常的程序,为什么在08上不

如何在32位系统下安装64位系统

  在论坛看到很多网友提问说32位系统下无法安装64位Windows7系统,这里推荐一个很简单的方法来在32位系统下安装64位系统. 32位系统可以是任意,比如XP,Vista,Windows7的32位. 64位系统同样可以是任意. 安装方法就是我们一直推荐的NT6安装,安装前请先检验文件的MD5值. 如今,估计只有用XP的才用GHOST版系统了吧?对于windows7与windows8我想大多数都是用原版了,不管怎么说官方的还是最干净最放心的,更何况安装速度也不慢了. 而32位与64位,32位

32位Linux下安装64位Hadoop的问题

问题描述 32位Linux下安装64位Hadoop的问题 本人最近在学习Hadoop, 使用的版本为2.5.2,目前已经在Linux环境下搭建好了. 但是现在在hadoop中建立上传文件目录时,碰到如下问题: 在/hadoop-2.5.2/bin下执行: ./hdfs dfs -mkdir -p ~/hdfile 之后报出错误提示信息: Java HotSpot(TM) Client VM warning: You have loaded library /home/wluser/hadoop-

edge获取地址 msa-使用MSA技术获取MS Edge浏览器的输入地址,为什么win10 32位能够获取而64位无法获取?

问题描述 使用MSA技术获取MS Edge浏览器的输入地址,为什么win10 32位能够获取而64位无法获取? #include #pragma comment(lib, "comsuppw.lib") #include #include #include #pragma comment( lib, "Oleacc.lib") // -------------------------------------------------------------------

win7x64 dll注入-win7 64位dll注入到任务管理器

问题描述 win7 64位dll注入到任务管理器 我需要在win7 64位系统下将一个64位的dll注入到任务管理器,我安装了一个CBT钩子, 我打开任务管理器发现注入是没有问题的.但是当我点击任务管理器的<显示所有用户进程>的按钮后,发现任务管理器重新启动了,启动后的任务管理器就不能在用CBT钩子注入了.有没有高手帮助我解决这个问题. 解决方案 问题的原因是权限的问题,我在UAC开启的情况下,使用普通用户权限来安装钩子,打开任务管理器,任务管理器进程的权限和当前用户权限是一致的, 此时任务管

十万火急 关于32位com组件在64位系统运行的问题

问题描述 十万火急 关于32位com组件在64位系统运行的问题 我用com组件实现的类似于WinRAR右键菜单的功能 编译了一个32位的版本,在64位的机器上,注册完了,右键菜单没效果 同样的代码编译成64位的版本,在64位的机器上,注册完了,可以看到预期的效果 现在的问题是:不编译成64位的版本,直接用32位的版本,在64位系统中运行.(领导是这么要求的) 有什么方法可以解决32位的com在64位系统中运行(能显示右键菜单) 用的VS2012编译器 C++语言 解决方案 这么做没有什么意义吧?

32位VS连接能否64位ODBC数据源

问题描述 环境:64位win8.1:64位Oracle11g服务器端,没装客户端:32位VS2015以上环境运行在同一台机器上配置64位的ORACLEODBC数据源并连接成功以后,想在VS2015里面配置"项目数据源"进行连接,但vs里面显示不了先前配置的ORACLEODBC数据源.请问各位大神,是不是因为用32位VS的原因?要怎么解决这个问题呢? 解决方案