2013-02-27 19 views
7

Masaüstü bir Java uygulaması yapıyorum. Bazı düşük seviyeli çalışmalar için üçüncü parti bir çerçeve kullanır (C dilinde ve JNA'yı kullandım).Java 7 Mac'te 32 bit olarak çalıştırılacak

Windows makinemde, Native.loadLibrary("EDSDK.dll", EdSdkLibrary.class, options); yaptığımda, gayet iyi çalışıyor. Mac'te Native.loadLibrary("EDSDK.framework", EdSdkLibrary.class, options); yapmayı denediğimde UnsatisfiedLinkError'u attı: mach-o, but wrong architecture

Benim java 7 sürümü 64 bit ve çerçeve 32 bit tabanlı. Java6'yı içeren farklı bir macda, Java'yı 32 bit modunda çalıştırdığımda, uygulama iyi çalışır. Bu, atılan istisnanın 32 bit uyumsuzluktan kaynaklandığını doğrular ve sadece 32 bit kullanmam gerekir (ki bu barizdir).

Bu rahatsız edici bölümdür-Java 7, -d32 seçeneği çalışmıyor ve Oracle artık Java 7'yi 32 bit'e vermiyor. Üçüncü taraf çerçeveyi kullanabilmem için Java 7'yi 32 bit'de nasıl çalıştırırım? JDK'yı aç? Ya da Java 6'yı kullanın ve 32 bit modunda kullanın. Ancak Oracle artık Mac için Java 6'yı desteklemiyor.

Diğer herhangi bir alternatif?

cevap

2

32 bit JVM içeren Apple Java 6 JDK ürününü karşıdan yükleyebilirsiniz. Ancak, Java 6 için gelecekteki güvenlik güncelleştirmelerinin çok fazla olacağından kuşkuluyum. Bu nedenle, yerel çerçevenin 64 bitlik bir sürümünü tutup Oracle Java 7 ile kullanmaktan daha iyi olursunuz.

İlgili konular