2009-10-29 11 views
9

To pytanie dotyczy 64-bitowych aplikacji Java w ogóle, chociaż natknąłem się na niego z powodu pracy z Netbeans/Eclipse. Używam 64-bitowego procesora z 64-bitowym systemem operacyjnym (Windows 7). Chciałem uruchomić Netbeans/Eclipse z więcej niż 4 GB pamięci sterty (tj. Przy użyciu flagi Xmx), ale mam pewne zamieszanie. Wygląda na to, że nie ma 64-bitowej wersji Netbeans i chociaż istnieją 64-bitowe wersje Eclipse dla innych systemów operacyjnych, nie ma ich w systemie Windows. Ponadto nie mogę znaleźć 64-bitowej wersji najnowszego JRE/JDK (czytałem strony wspominające o ich istnieniu, więc nie jestem pewien, czy Sun właśnie tymczasowo je zabrał).64-bitowe aplikacje Java: Czy wymagany jest 64-bitowy system operacyjny, 64-bitowy JRE i aplikacja 64-bitowa?

Teraz kiedy wyjaśniono moją sytuację, moje pytania są następujące:

  1. Jakie oprogramowanie muszę uruchomić Netbeans/Eclipse/(Random aplikację Java) o więcej niż 4 GB pamięci sterty? Czy posiadanie 64-bitowego systemu operacyjnego jest wystarczające? Czy potrzebuję również 64-bitowego środowiska JRE?
  2. Myślałem, że kod źródłowy Java i kod bajtowy Java były niezależne od architektury, ponieważ w programie Java skompilowanym za pomocą 32-bitowego 64-bitowego JDK można uruchomić na innej maszynie z 32-bitowym lub 64-bitowym JRE. Jeśli to prawda, dlaczego Eclipse ma wersję 32-bitową i wersję 64-bitową (zdaję sobie sprawę, że nie ma wersji dla Windows, ale mają one dla Linuksa)? Czy to oznacza, że ​​Eclipse ma prawdopodobnie natywne biblioteki, dla których ważna byłaby 32-bitowa czy 64-bitowa?

Dzięki z góry,
red.october

Aktualizacja 1:
Ok, okazuje się, że jest to wersja 64-bitowa Eclipse dla Windows, ale jest głęboko z jakiegoś powodu (przynajmniej nie widziałem, gdzie był połączony ze strony głównej). Po dość długim poszukiwaniu, znalazłem blog post, który stwierdził, że możesz pobrać 64-bitowy Eclipse dla Windows pod numerem Eclipse Downloads. To łącze wskazuje na stronę z linkami do wielu różnych wersji wydania - właśnie wybrałem najnowszą wersję stabilną (3.5.1 w momencie tego posta). Ta druga strona zawiera listę różnych plików do pobrania dla Eclipse 3.5.1, a dla każdego pobrania dostępne są różne architektury (32-bitowe i 64-bitowe) oraz systemy operacyjne (np. Windows, Linux). Osobiście wybrałem pobieranie Eclipse SDK - jest ono dostarczane z "platformą Eclipse, narzędziami programistycznymi Java i środowiskiem programistycznym wtyczek, w tym źródłami oraz dokumentacją dla użytkowników i programistów". Nie jestem pewien, czy potrzebuję źródła lub dokumentacji, ale sądzę, że zawsze mogę go usunąć później.

Odpowiedz

9

Tak, do korzystania z całej pamięci potrzebna jest 64-bitowa maszyna JVM. Nie jestem na bieżąco z tym, co można uzyskać w systemie Windows, więc pozwolę komuś na to odpowiedzieć.

Jednak myślę, że głównym powodem, dla którego nie można znaleźć 64-bitowych netbeansów, jest to, że jest w 100% czysty i niezależny od architektury. Eclipse zapewnia alternatywny framework GUI z bardziej natywnym wyglądem i stylem (SWT) i używa go do samego środowiska programistycznego. Po utworzeniu linku do aplikacji java do bibliotek natywnych należy rozpowszechnić biblioteki dla poprawnej architektury, stąd zależność architektury od dystrybucji eclipse (drugi element).

+0

Cool - dzięki za wyczyszczenie tego. –

+0

Czy to oznacza rozpowszechnianie aplikacji java, które muszę rozwijać w zaćmieniu odpowiedniej architektury? – Chris

+0

@ Chris: Nie, wcale. Musisz tylko upewnić się, że pliki binarne platformy są dostarczane z produktem i poprawnie załadowane. Istnieje wiele stron opisujących, jak to zrobić i jestem pewien, że jest to również w SWT FAQ (http://www.eclipse.org/swt/faq.php) – Fredrik

2

Możesz uruchomić 64-bitowy JDK lub JRE w Windows 7 Uruchomiłem je teraz.

Java SE Development Kit 6u16

Java SE Runtime Environment 6u16

Wybierz który system operacyjny z listy rozwijanej masz wybór systemu Windows 32 lub 64 bit.

+0

Prawdopodobnie powinienem podzielić to pytanie - Fredrik odpowiedział na moje ogólne pytania, ale odpowiedziałeś, że mogę uzyskać 64-bitowy JDK6 (więc dałem obie odpowiedzi +1). Okazuje się, że moim problemem było to, że próbowałem ściągnąć plik EXE JDK + Netbeans, a ten automatycznie pochodzi z 32-bitowej wersji JDK. Dzięki. –

1

Nie ma czegoś takiego jak "64-bitowa aplikacja java". Klasy skompilowane Java są w bajtowym kodzie java, period. Wykonywanie programów na 64-bitowej maszynie JVM (która z kolei wymaga 64-bitowego systemu operacyjnego) daje im dostęp do większej ilości pamięci, ale różnica jest niewidoczna dla programu, ponieważ cały dostęp do manipulacji pamięcią jest ukryty, a wszystkie typy danych są takie same.

Zobacz także this question

+0

@Jherico: W tym przypadku czuję, że twoja odpowiedź to papka semantyczna, on chce uzyskać dostęp do ilości pamięci, która przekracza granice JVM 32b, i obalić twój pomysł o braku czegoś takiego, mógłby użyć Long dla każdej zmiennej i rzeczywiście byłaby to aplikacja Java w wersji 64b. (Bezcelowe, ale możliwe). –

+0

@sudo noob: Myślę, że Jherico poprawnie odpowiedział na moje pytanie. Aplikacja Java bez natywnego kodu nie ma wersji 32-bitowej lub 64-bitowej (o to właśnie prosiłem) - piszesz i kompilujesz ją raz, a rzeczy takie jak ilość dostępnej pamięci zależą od JVM i platforma sprzętowa. Nie sądzę, że 64-bitowa aplikacja 64-bitowa oznacza, że ​​wszystkie typy danych mają teraz długość 64 bitów (myślę, że char wciąż ma 8 bitów w 64-bitowych aplikacjach C). –

Powiązane problemy