2010-05-27 30 views
39

Uygulamam aşağıdaki istisnayı atar.SWT, Windows 64 bit

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SW T libraries on 64-bit JVM.

Bu nasıl çözülür? Gerekli jar dosyasının adı nedir?

cevap

41

64 bit JVM'lerde 64 bit SWT'ye ihtiyacınız vardır. Güncel sürümler buradan indirilebilir:

http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/index.php#SWT

Not ilk iki indirme, ilk x64 için, x32 için diğeri.

Not: 64bit Windows'da bile, 32 bit JVM kullanıyorsanız, 32 bit SWT sürümüne hala ihtiyacınız var!

+3

Bu denetim yoksa bu doğru, ama sadece hızlı nottur Hangi SWT'nin kullanıldığını (örneğin, 64-bit JVM ile bir 32-bit RCP uygulaması için 64-bit bir sistemde bir eklenti geliştirmek), yerine ürününüzü başlatmak için 32-bit JVM'yi kurmanız ve kullanmanız gerekir. RCP hedef platformunuzu değiştirmek (bkz. Mario Marinato'nun cevabı). – Caspar

+0

@Casper: Doğru. – Daniel

+2

Yeni sürümü: [64 bit SWT] (http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/R-4.2.1-201209141800/swt-4.2.1 -win32-win32-x86_64.zip) – Adil

1

Sadece SWT'nin yanlış sürümüne karşı hazırlanıyorsunuz. 64bit Eclipse'i indirin ya da delta paketini alın ve doğru hedef ortama karşı inşa edin.

+0

"Delta paketi" nedir? Genel bir çözümü merak ediyorum çünkü SWT uygulamamın dinamik olarak doğru kavanozu seçmesini çok isterim. Ayrıca, SWT'nin sanal makinenizle aynı sürüm olması gerektiğini de unutmayın - mutlaka O/S'niz olarak değil. –

+0

Delta paketi 'dinamik' bir şey yapmanıza izin vermez, sadece size herhangi bir hedeften herhangi bir hedef için inşa etme yeteneği verir. http://louismrose.wordpress.com/2009/01/23/installing-the-rcp-delta-pack-for-eclipse/ – andyczerwonka

6

Birkaç hafta önce aynı sorunları yaşadım. 32bit SWT kullanması gereken bir RCP uygulaması geliştiriyoruz, ancak 64bit makinelerde çalışıyoruz. Tek yapmamız gereken ne

bir 32 bit JVM işaret böylece Eclipse'nın yapılandırmaları değiştirmekti. Pencere -> Tercihler -> Java -> Yüklü JRE'lerde yaptık. Bu tercih sayfasında, biz "Program Files (x86)" den "Program Files" tüm referanslar değiştirdi.

Umarım bir şekilde size yardımcı olur. SWT kütüphanesi indirmeleri son bağlantı için

+0

64-bit bir sürümde 32-bit RCP uygulaması geliştiriyorsanız Eclipse, ayrıca x86 mimarisini açıkça kullanmak için uygulamanın hedef platformunu yapılandırmanız gerekir. Aksi takdirde Eclipse PDE, SWT kütüphanelerinin eklenti bağımlılıkları olarak 64 bit sürümlerini ayarlamaya devam edecektir. –

2

Benim cevabım daha yukarıdaki cevapları, (Bence) en iyi cevabı sağladı kullanıcı @ClickUpvote özellikle yorumu yayınlayan az derlemesidir. Yani burada ben sadece göndermeden önce test edilir:

Başvurunuz aşağıdaki istisna atar (Windows'ta 7 64 bit, JVM 64 ile) "ana" dizisindeki

İstisna java.lang.UnsatisfiedLinkError : 64 bit JVM'de 32 bit SW T kitaplıkları yüklenemiyor. aşağıdaki gibi

Sonra çözümdür: 64 bit JVM en sitesinde 64 bit SWT gerekir.

  • Git: http://www.eclipse.org/swt/

  • Scroll Bültenleri aşağı

  • tıklayın daha üzerinde en:

    oldukça iyi gizlenmiş - aşağıda açıklandığı gibi

    Güncel sürümler indirilebilir

Sadece bu yayın URL'sini yazma anda bu dosyayı (indirmek açar Yeni sayfada

Stable

Windows, Linux, OS X, more...

Pencereler (x86_64) (Desteklenen Sürümler) (http) 6.3 MB

swt-4.4-win32-win32-x86_64.zip Ve bu tam da gerektiği versiyonudur.