我可以运行使用64位jre的32位jdk开发的java程序吗?应用程序使用32位非Java系统库
我正在开发一个64位Windows 7安装上使用64位eclipse的Java应用程序。我不得不使用32位JDK(1.7.0),因为应用程序使用Jpcap,它不会使用64位JDK进行编译。我可以运行使用64位jre的32位jdk开发的java程序吗?应用程序使用32位非Java系统库
应用程序必须跨越32位和64位系统的跨平台,这对于使用任何JDK开发的Java应用程序来说通常是这种情况。但我相信情况有点复杂,因为除了一个jar之外,Jpcap还会安装系统库(.dll/.so),这些库又是WinPcap和libpcap的包装器。所以Jpcap调用是对这些库的一系列嵌套调用。
下面是问题:
应用程序可执行文件是否可以在64位平台上工作?假设用户将安装所需的x86库(jpcap.dll/.so,WinPcap,libpcap),因为windows lib不存在64位版本。
将在64个平台上的应用程序可执行工作?假设用户将安装所需的x86库(jpcap.dll/.so,WinPcap,libpcap),因为windows lib不存在64位版本。
您将需要使用32位JRE来运行该应用程序。 64位Hotspot JRE不能使用32位本机库。
但是,如果您使用64位或32位Eclipse进行开发和构建,则无关紧要,前提是您将Eclipse配置为启动32位JRE以进行任何涉及测试的测试本地库。
而且要清楚的是,您可以在64位操作系统平台上运行32位JRE,但不能以其他方式运行。
UPDATE - 显然jpcap.dll 可以 64位Windows内置 - 看到这个帖子:https://groups.google.com/forum/?fromgroups=#!topic/jpcap/-vxZv0eAcp4
从记忆(这有点模糊)我没有。
本机库(至少在windows下)需要在与JVM相同的位置上执行。
所以,为了你成为能够加载X32位库,你应该在X32位进程内运行(或X32位JVM)
StephenC指出有适用于Windows – MadProgrammer
喜64位版本,感谢你的回答! 我必须要求用户安装32位JRE吗?或者64位JRE能够运行应用程序吗? – schinoy
我碰到了x86-64 winPcap的alpha版本,但我无法使用它,因为我的应用程序将部署在企业环境中。 64位窗口可以托管和运行32位winPcap。我相信我的问题归结为让用户安装32位JRE,因为大多数预期用户使用64位操作系统。 – schinoy
如果您无法获得64位dll,则只能安装(或让用户安装)32位JRE。 –