8

我正在 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 位版本。

4

2 回答 2

7

应用程序可执行文件可以在 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

于 2012-10-26T02:59:00.317 回答
1

从记忆中(而且有点模糊)我不会。

本机库(至少在 windows 下)需要在与 JVM 相同的比特蜂鸣声中执行。

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

于 2012-10-26T02:47:46.177 回答