我正在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位版本。
答案 0 :(得分:6)
应用程序可执行文件是否可以在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构建 - 请参阅此帖子:https://groups.google.com/forum/?fromgroups=#!topic/jpcap/-vxZv0eAcp4
答案 1 :(得分:1)
从记忆中(它有点模糊)我没有。
本机库(至少在Windows下)需要在与JVM相同的位内执行。
因此,为了能够加载x32位库,您应该在x32位进程(或x32位JVM)中运行