Ne peut pas charger les bibliothèques SWT 64 bits sur JVM 32 bits (remplaçant le fichier SWT))

j'essaie de corriger ce problème mais je ne sais pas exactement où je dois remplacer SWT jar fichier pour Eclipse.

Système Actuel Config:

Eclipse Helios 3.6 - 32 Bit
JDK 1.6 
JVM - 32 Bit 
Windows 7 - 64 Bit

Message D'Erreur:

java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:174)
    at org.eclipse.swt.internal.C.<clinit>(C.java:21)
    at org.eclipse.swt.widgets.Display.<clinit>(Display.java:138)
    at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:687)
    at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
    at de.vogella.rcp.intro.first.Application.start(Application.java:18)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
An error has occurred. See the log file

contournement:

  1. Link1 : J'ai compris la cause du problème et j'ai essayé de remplacer 64-bit SWT à 32 bits mais je ne suis pas sûr si je suis en train de faire ?

    a téléchargé le fichier de 32 bits swt-3.6.1-win32-win32-x86.zip Extrait le fichier zip Ont des fichiers comme montré ci-dessous

    enter image description here

    copié swt.fichier jar navigated to C:Program fichierseclipseplugins suppression du fichier Swt 64 bits(I. e org.Eclipse.swt.win32.win32.x86_64.source_3.6.2.v3659c ) placé copié swt.dossier jar et relancé

    lance toujours MÊME ERREUR

    a également essayé de renommer le swt.jar file à l'org.Eclipse.swt.win32.win32.x86_64.source_3.6.2.v3659c

    même erreur

  2. Link2 : a suggéré la solution alternative mais n'a pas pu résoudre le problème.

    même erreur

  3. Je ne veux vraiment pas désinstaller 32-JVM et 32-Bit Eclipse et installer les versions 64 bits correspondantes.

    pas une OPTION

solution de Contournement Après le paulsm4 et Paul Webster "151960920 réponse" & je suis confus

quand j'ai essayé d'exécuter ceci pour vérifier JVM, JRE version dans Eclipse

package javaVersion;

public class JavaVersion
{

    public static void main( String[] args )
    {
        System.out.println( "JRE Version :" + System.getProperty( "java.runtime.version" ) );
        System.out.println( "JVM Bit size: " + System.getProperty( "sun.arch.data.model" ) );

    }

}

sortie:

1.6.0_31-b05
JVM Bit size: 32

cependant quand j'ai essayé en ligne de commande pour JAVA-VERSION

enter image description here

donc mon système de compréhension a 64bit JVM où comme Eclispe lit 32 bits JVM. Alors comment puis-je détourner le système pour lire 32 bits JVM ?

22
demandé sur Community 2012-06-14 00:12:11

13 réponses

Eclipse lance votre application avec N'importe quel JRE que vous avez défini dans votre configuration de lancement. Puisque vous exécutez Eclipse 32 bits, vous exécutez/déboguez contre ses bibliothèques SWT 32 bits, et vous aurez besoin d'exécuter un JRE 32 bits.

votre JRE 64 bits est, pour quelque raison que ce soit, votre JRE installé par défaut.

pour changer cela, assurez-vous d'abord que vous avez un JRE 32 bits configuré dans la préférence JRES installée. Aller à la Fenêtre -> Préférences et naviguer vers Java - > JRES installé:

Installed JREs

vous pouvez cliquer sur Ajouter et naviguer sur votre JVM de 32 bits JAVA_HOME pour l'ajouter.

ensuite, dans votre Configuration D'exécution, Trouvez votre application Eclipse et assurez-vous que L'exécution JRE est définie à la 32-bit JRE que vous venez de configurer:

Run Configuration

(noter le combobox qui est mal souligner.)

n'essayez pas de remplacer les pots SWT, qui se termineront probablement mal.

27
répondu Edward Thomson 2012-06-14 17:20:59

Eh bien, duh:) SWT utilise JNI ... et JNI est strictement spécifique à la plateforme.

utilisez des bibliothèques 32 bits avec un JVM 32 bits, des bibliothèques 64 bits avec un JVM 64 bits, assurez-vous que les versions correspondent exactement , et ne mélangez pas.

à mon humble avis...

PS: Vous pouvez avoir plusieurs JVM et/ou plusieurs Eclipse coexistant sur la même boîte.

8
répondu paulsm4 2012-06-13 20:15:11

j'ai enlevé C:\ProgramData\Oracle\Java\javapath de mon chemin, et ça a marché pour moi.

et assurez-vous d'inclure les adresses x64 JDK et JRE dans votre chemin.

5
répondu Parviz 2015-03-15 18:26:10

ajoute simplement-d32 aux arguments VM dans la section"Modifier les propriétés de configuration de lancement".

3
répondu Pascal Peregrina 2014-01-12 17:20:18

Merci beaucoup les gars!

j'ai oublié mon éclipse VERSION il était 64Bit et 3.6

je devais m'assurer que c'était 32bit Eclipse, 32 Bit JVM donc j'ai désinstallé Eclipse & all JVM pour un démarrage propre. Installé 32Bit JDK1.6 de ici et 32bit Eclipse de ici

1
répondu Mad-D 2012-06-14 19:09:15

je viens de remplacer le swt.jar dans mon colis avec la version 64 bits et cela a fonctionné tout de suite. Pas besoin de recompiler tout le paquet, il suffit de remplacer le swt.fichier jar et assurez-vous que votre manifeste d'application l'inclut.

1
répondu sijpkes 2012-10-11 03:24:43

j'ai aussi fait face au même problème il y a longtemps.

Voici la Solution

dans Eclipse cliquez sur"Windows"-->"Préférences"---->" Java " - - ->"JRES installé "--->Sélectionnez le JDK, cliquez sur"Modifier".

Vérifiez votre chemin JDK, est-il en fonction de votre chemin dans les variables environnementales définies dans le système. si non, alors le changer pour "chemin" répertoire défini.

1
répondu Chandan Jha 2013-08-26 06:13:53

Vérifiez la définition de la cible si vous travaillez avec un projet RCP-SWT.

ouvrir l'éditeur cible de et naviguer à la définition d'environnement. De là, vous pouvez définir l'architecture. L'idée est qu'en démarrant votre application RCP, seules les bibliothèques/paquets SWT 32 bits seront chargés. Si vous avez déjà une configuration de runtime, il est conseillé d'en créer un nouveau.

Target Editor in Eclipse

1
répondu Georgios Stathis 2016-03-08 12:26:41

j'ai enlevé C:\ProgramData\Oracle\Java\javapath de mon chemin, et ça a marché pour moi.

mais assurez-vous d'inclure les adresses x64 JDK et JRE dans votre chemin.

1
répondu Nikhil 2016-06-07 05:10:55

donc, assurez-vous que vous êtes sur le bon environnement I. les bibliothèques SWT 32 bits doivent correspondre à JVM 32 bits, vice versa.

j'ai résolu ce problème en installant JDK 64-bit ,jre 64-bit et finalement en ajoutant le réglage du chemin jdk dans les variables d'environnement adn ajoutant jre à l'éclipse.

1
répondu Karthik 2018-04-13 07:02:04

installez un JDK.

il est possible de faire tourner Eclipse avec un JRE, ou du moins c'était le cas, mais pourquoi s'en préoccuper? Eclipse est bien plus heureuse avec un JDK.

rappelez-vous que le JRE qui est utilisé pour exécuter Eclipse ne doit pas être le JRE Qu'Eclipse utilise pour exécuter une application.

PS. Je suppose ici que le problème de l'affiche originale était D'obtenir Eclipse pour commencer, et pas (comme d'autres réponses semblent adresser) obtenir Eclipse pour lancer une application.

0
répondu Ben Aveling 2014-11-30 03:17:51

Aller au Chemin de C:\ProgramData\Oracle\Java\javapath (Cette voie est dans mon cas pourrait être différente dans votre cas). Renommer le dossier ORACLE avec une autre ligne de nom ORACLE_OLD. Et redémarrez le STS / IDE . Cela fonctionne pour moi

0
répondu rahulnikhare 2018-03-27 03:42:22

j'ai enlevé C:\ProgramData\Oracle\Java\javapath de mon chemin, et ça a marché pour moi. Réponse Parfaite, Merci Nikil.

-1
répondu Ram 2017-11-16 14:47:11