我可以运行使用32位jdk和64位jre开发的java程序吗? 应用程序使用32位非Java系统库

我正在64位Windows 7安装上使用64位eclipse开发一个java应用程序。 我被迫使用32位JDK(1.7.0),因为该应用程序使用Jpcap ,它不会使用64位JDK编译。

应用程序必须跨32位和64位系统跨平台,这通常是使用任何JDK开发的Java应用程序的情况。 但我相信这种情况有点复杂,因为除了jar之外,Jpcap还安装了系统库(.dll / .so),后者又是WinPcap和libpcap的包装器。 因此,Jpcap调用是对这些库的一系列嵌套调用。

这是问题:

应用程序可执行文件是否可在64位平台上运行 假设用户将安装所需的x86库(jpcap.dll / .so,WinPcap,libpcap),因为Windows库不存在64位版本。

应用程序可执行文件是否可在64位平台上运行 假设用户将安装所需的x86库(jpcap.dll / .so,WinPcap,libpcap),因为Windows库不存在64位版本。

您将需要使用32位JRE来运行该应用程序。 64位Hotspot JRE无法使用32位本机库。

但另一方面,如果您使用64位或32位Eclipse进行开发和构建,则无关紧要…前提是您将Eclipse配置为针对涉及本机库的任何测试启动32位JRE。

要明确的是,您可以在64位操作系统平台上运行32位JRE,但不是相反。


更新 – 显然jpcap.dll 可以为64位Windows构建 – 请参阅此post: https ://groups.google.com/forum/?fromgroups =#!topic / jpcap / -vxZv0eAcp4

从记忆中(它有点模糊)我不是。

本机库(至少在Windows下)需要在与JVM相同的位内执行。

因此,为了能够加载x32位库,您应该在x32位进程(或x32位JVM)中运行