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

时间:2012-10-26 02:33:11

标签: java 64-bit jpcap

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

2 个答案:

答案 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)中运行