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:
-
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
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
-
Link2 : a suggéré la solution alternative mais n'a pas pu résoudre le problème.
même erreur
-
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
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 ?
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é:
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:
(noter le combobox qui est mal souligner.)
n'essayez pas de remplacer les pots SWT, qui se termineront probablement mal.
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.
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.
ajoute simplement-d32 aux arguments VM dans la section"Modifier les propriétés de configuration de lancement".
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.
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.
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.
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.
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.
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.
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
j'ai enlevé C:\ProgramData\Oracle\Java\javapath de mon chemin, et ça a marché pour moi. Réponse Parfaite, Merci Nikil.