2012-10-26 10 views
5

Pracuję nad aplikacją java, używając 64-bitowego zaćmienia na 64-bitowej instalacji systemu Windows 7. Jestem zmuszony użyć 32-bitowego JDK (1.7.0), ponieważ aplikacja używa Jpcap, która nie zostanie skompilowana z 64-bitowym JDK.Czy mogę uruchomić program java opracowany przy użyciu 32-bitowego jdk z 64-bitowym jre? Aplikacja korzysta z 32-bitowych bibliotek systemów innych niż java

Aplikacja musi być wieloplatformowa w systemach 32- i 64-bitowych, co zwykle ma miejsce w przypadku aplikacji java opracowanych przy użyciu dowolnego JDK. Ale uważam, że sytuacja jest nieco skomplikowana, ponieważ oprócz słoika, Jpcap instaluje biblioteki systemowe (.dll/.so), które z kolei są owijkami dla WinPcap i libpcap. Tak więc wywołanie Jpcap jest ciągiem zagnieżdżonych wywołań do tych bibliotek.

Oto pytanie:

będzie praca wykonywalny aplikacji na platformach 64-bitowych? zakładając, że użytkownicy będą mieć zainstalowane wymagane biblioteki x86 (jpcap.dll/.so, WinPcap, libpcap), ponieważ wersje 64-bitowe nie istnieją dla bibliotek systemu Windows.

Odpowiedz

5

będzie zastosowanie wykonywalny praca na 64 bitowych platformach ? zakładając, że użytkownicy będą mieć zainstalowane wymagane biblioteki x86 (jpcap.dll/.so, WinPcap, libpcap), ponieważ wersje 64-bitowe nie istnieją dla bibliotek systemu Windows.

Do uruchomienia aplikacji konieczne będzie korzystanie z 32-bitowego środowiska JRE. 64-bitowy hotspot JRE nie może używać 32-bitowych natywnych bibliotek.

Ale z drugiej strony nie ma znaczenia, czy używasz 64-bitowego, czy 32-bitowego Eclipse do tworzenia i budowania ... pod warunkiem, że skonfigurujesz Eclipse tak, aby uruchamiał 32-bitowe środowisko JRE dla wszelkich testów, które wymagają biblioteki natywne.

Aby było jasne, można uruchomić środowisko JRE na platformie 64-bitowej, ale nie na odwrót.


UPDATE - widocznie jpcap.dll może być budowane dla 64-bitowych systemów Windows - patrz tej publikacji: https://groups.google.com/forum/?fromgroups=#!topic/jpcap/-vxZv0eAcp4

+0

Hi, Dziękuję za odpowiedź! Czy będę musiał poprosić użytkowników o zainstalowanie 32-bitowego środowiska JRE? lub czy 64-bitowy JRE będzie w stanie uruchomić aplikację taką, jaka jest? – schinoy

+0

Przepuściłem wersję alfa dla WinPcap x86-64, ale nie mogę jej użyć, ponieważ moja aplikacja zostanie wdrożona w środowisku korporacyjnym. 64-bitowe okna mogą obsługiwać i uruchamiać 32-bitowy pakiet winPcap. Wierzę, że mój problem sprowadza się do nakłonienia użytkowników do zainstalowania 32-bitowego środowiska JRE, ponieważ większość oczekiwanych użytkowników używa 64-bitowego systemu operacyjnego. – schinoy

+1

Jeśli nie możesz uzyskać 64-bitowej biblioteki dll, nie masz opcji, ale musisz zainstalować (lub nakłonić użytkowników do instalacji) 32-bitowy JRE. –

1

Z pamięci (i jest trochę mglisty) Tak bym nie.

Biblioteki macierzyste (przynajmniej pod oknami) muszą być wykonane w tej samej bitowej szczelności, co JVM.

Tak, tak, aby móc załadować biblioteki bitowych x32, powinien być uruchomiony w procesie x32 bit (lub x32 bit JVM)

+0

StephenC wskazał, że jest to wersja 64-bitowa dla Windows – MadProgrammer