SORU
30 NİSAN 2009, PERŞEMBE


Nasıl 32 bit vs 64 bit yüklü olan seziyorum

Bunun yanı sıra, bir yükleyici ile yükleme sırasında, TOTEM (32 bit vs 64 bit) bir sistemde yüklü olup olmadığını kontrol etmek istiyorum. Ben zaten bir sistem özelliği kontrol edebileceğimi bilmek "sun.arch.data.model", ama bu Güneş özel. Eğer bu standart bir çözüm olup olmadığını merak ediyorum.

CEVAP
30 NİSAN 2009, PERŞEMBE


Kullanılan JVM mimarisi kullanılarak alınabilir "os.arch" özellik:

System.getProperty("os.arch");

"Bir yanlış isim biraz gibi görünüyor parçası, ya da belki de özgün tasarımcılar Jvm'ler mimarileri üzerinde çalışan olmasını beklemiyordu için yazılmış değillerdi." os Dönüş değerleri inconsistent gibi görünüyor.

Eclipse Yükleyici ekibi tackling the issue JVM vs OS mimarisi vardır. Alıntı:

64 bit : Java ve Sistem

Issue 143434 olarak izlenir.

Şu anda JVM 64 bit kullanıyoruz için Eğer sistem (ve böylece belirlemek Platform.() getHardwareArch) 64-bit ya da değil. Bu kesinlikle beri yanlış. mümkünse 32 bit JVM üzerinde çalıştırmak için 64 bit sistem. Bir bulmalıyız kontrol etmek için çözüm işletim sistemi 64-bit gerçek 32-bit JVM üzerinde çalışan durumda.

  • Windows için yapılan WindowsRegistry kullanarak olabilir.() İsWow64Process
  • Linux için kontrol ederek 'uname -m/-p' == x86_64
  • yapılabilir Solaris örneğin kullanmak için 'isainfo -b'
  • Mac EY SXt be done using uname arguments, probably it can be solved by creating of 64-bit binary and executing on the platform... (unfortunately, this does not work:( Ive sadece x86_64 ile ikili yaratmış olabilir ve ppc64 kemer ve başarılı oldu Tiger..) üzerinde yürütüldü
  • Genel Unix desteği için net de değil... muhtemelen kontrol aynı '- m uname/-p' / 'getconf için LONG_BİT' ve bazı karşılaştırma Olası 64-bit değerleri (x86_64 64 amd64, ıa64).

< / ^ hr .

Farklı Jvm'ler örnek özellikleri 64-bit üzerinde çalışan Ubuntu 8.0.4:

32 bit IBM 1.5:

java.vendor=IBM Corporation
java.vendor.url=http://www.ibm.com/
java.version=1.5.0
java.vm.info=J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20061001 (JIT enabled)
J9VM - 20060915_08260_lHdSMR
JIT  - 20060908_1811_r8
GC   - 20060906_AA
java.vm.name=IBM J9 VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=IBM Corporation
java.vm.version=2.3
os.arch=x86
os.name=Linux
os.version=2.6.24-23-generic
sun.arch.data.model=32

64 bit 1.6 Sun:

java.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi
java.version=1.6.0_05
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Sun Microsystems Inc.
java.vm.version=10.0-b19
os.arch=amd64
os.name=Linux
os.version=2.6.24-23-generic
sun.arch.data.model=64

64 bit GNU 1.5:

java.vendor=Free Software Foundation, Inc.
java.vendor.url=http://gcc.gnu.org/java/
java.version=1.5.0
java.vm.info=GNU libgcj 4.2.4 (Ubuntu 4.2.4-1ubuntu3)
java.vm.name=GNU libgcj
java.vm.specification.name=Java(tm) Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Free Software Foundation, Inc.
java.vm.version=4.2.4 (Ubuntu 4.2.4-1ubuntu3)
os.arch=x86_64
os.name=Linux
os.version=2.6.24-23-generic

(GNU sürümü "sun.rapor vermez arch.veri."özelliği; muhtemelen diğer Jvm'ler de yok.) modeli

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • iNCH

    iNCH

    20 Temmuz 2009
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006