2012-10-26 13 views
5

Sto sviluppando un'applicazione java che utilizza un'eclissi a 64 bit su un'installazione di Windows 7 a 64 bit. Sono costretto a utilizzare un JDK a 32 bit (1.7.0) perché l'applicazione utilizza Jpcap, che non verrà compilato con un JDK a 64 bit.Posso eseguire un programma java sviluppato usando jdk a 32 bit con jre a 64 bit? l'applicazione utilizza librerie di sistemi a 32 bit non java

L'applicazione deve essere multipiattaforma su sistemi a 32 bit e 64 bit, che è normalmente il caso con le applicazioni java sviluppate utilizzando qualsiasi JDK. Ma credo che la situazione sia leggermente complicata perché oltre a un jar, Jpcap installa librerie di sistema (.dll/.so) che a loro volta sono wrapper per WinPcap e libpcap. Quindi una chiamata Jpcap è una successione di invocazioni annidate a queste librerie.

ecco la domanda:

Sarà l'applicazione programma eseguibile su piattaforme a 64 bit? supponendo che gli utenti dispongano delle librerie x86 richieste (jpcap.dll/.so, WinPcap, libpcap) in quanto le versioni a 64 bit non esistono per le librerie Windows.

risposta

5

Sarà l'applicazione programma eseguibile su piattaforme a 64 bit ? supponendo che gli utenti dispongano delle librerie x86 richieste (jpcap.dll/.so, WinPcap, libpcap) in quanto le versioni a 64 bit non esistono per le librerie Windows.

Sarà necessario utilizzare un JRE a 32 bit per eseguire l'applicazione. Un Hotspot JRE a 64 bit non può utilizzare librerie native a 32 bit.

Ma il rovescio della medaglia è che non importa se si utilizza un Eclipse a 64 bit o 32 bit per lo sviluppo e la creazione ... a condizione di configurare Eclipse per avviare un JRE a 32 bit per qualsiasi test che coinvolga le librerie native

E per essere chiari, è possibile eseguire un JRE a 32 bit su una piattaforma del sistema operativo a 64 bit, ma non il contrario.


UPDATE - a quanto pare il jpcap.dll può essere costruito per Windows a 64 bit - vedere questo annuncio: https://groups.google.com/forum/?fromgroups=#!topic/jpcap/-vxZv0eAcp4

+0

Hi, Grazie per la risposta! Dovrò chiedere agli utenti di installare un JRE a 32 bit? o un JRE a 64 bit sarà in grado di eseguire l'applicazione così com'è? – schinoy

+0

Mi sono imbattuto in una versione alpha per x86-64 winPcap, ma non posso usarla perché la mia applicazione verrà distribuita in un ambiente aziendale. Le finestre a 64 bit possono ospitare ed eseguire winPcap a 32 bit. Credo che il mio problema si riduca a fare in modo che gli utenti installino un JRE a 32 bit, poiché la maggior parte degli utenti previsti utilizza un sistema operativo a 64 bit. – schinoy

+1

Se non riesci a procurarti una dll a 64 bit, non hai altra scelta che installare (o far installare gli utenti) un JRE a 32 bit. –

1

Dalla memoria (ed è un po 'di nebbia) vorrei così no.

Le librerie native (almeno in Windows) devono essere eseguite con la stessa larghezza di bit della JVM.

Così, al fine di poter essere in grado di caricare le librerie bit x32, si dovrebbe essere in esecuzione all'interno di un processo po 'x32 (o x32 bit JVM)

+0

STEPHENC ha sottolineato esiste una versione a 64 bit per Windows – MadProgrammer