2010-09-15 14 views
12

Jestem zaznajomiony z .Net i jakie są zespoły - ale niestety moja wiedza Java nie jest tak silna.Czy plik JAR Java jest podobny do zestawu .Net?

Wiem, że Java i .Net to różne "światy" (być może porównywanie jabłek z gruszkami), ale czy JAR i Zespoły .NET są mniej więcej równoważnymi koncepcjami?

Edit: podstawa Aktualizacja wstępnych odpowiedzi

Sposób, w jaki interpretuje to tak, że mają one podobieństwa:

  • Oba mogą zawierać zasobów i metadanych.

ale istnieje pewne różnice podstawowe:

  • zespół Net jest kompilowany JAR nie jest.
  • Pliki JAR nie są wymagane do utworzenia aplikacji Java; Zespoły .Net są wymagane w przypadku aplikacji .Net.

[To nie jest czas na wojny religijne - Chciałbym wiedzieć, czy/jak dużo mojego zrozumienia Net zespoły mogą ubiegać się o uzyskanie głowę wokół Javy (a może to nawet pomoże osobom pracującym w Javie w inny sposób).]

+1

Zobacz także: http://stackoverflow.com/questions/3629291/is-a-java-package-tequivalent-of-a-net- assembly – ColinD

+0

Jest to dość bliskie przybliżenie. Mnóstwo różnic. (na przykład Assembly.GetTypes nie ma analogowego w Javie) –

+0

@ColinD - dzięki za link. –

Odpowiedz

5

Powiedziałbym, że nie, nie są one tym samym pojęciem, zauważając, że JAR może być używany jak montaż. Jeśli naprawdę chcesz zorientować się w pliku JAR, pomyśl o nim jako o pliku ZIP. Tak naprawdę to wszystko.

Najczęściej archiwum to zawiera skompilowane pliki klas. A najczęściej te pliki klas są uporządkowane w sposób hierarchiczny, odpowiadający pakietowi klasy.

Jednak pliki JAR często zawierają inne rzeczy, takie jak pakiety wiadomości, obrazy, a nawet pliki źródłowe. Zachęcam cię do otwarcia jednego z dostępnych klientów z rozpakowaniem i zajrzenia do środka.

Format JAR jest jednak najczęstszym sposobem pakowania dystrybuowalnego dla biblioteki lub aplikacji Java, dzięki czemu są one bardzo podobne.

Z językowego punktu widzenia pliki JAR nie są w żaden sposób wymagane do tworzenia aplikacji lub biblioteki Java, ani też nie powiedziałbym, że są one nierozerwalnie związane z Javą, jednak zarówno biblioteka standardowa, jak i JDK obsługuje obsługę plików JAR.

+0

"Najczęściej archiwum to zawiera skompilowane pliki klas." - czy to znaczy, że nie zawsze musi? –

+1

@Adrian K: Racja, nie musi. Na przykład skompilowane pliki, pliki dokumentów i pliki źródłowe biblioteki często są rozprowadzane w 3 różnych plikach jar, chociaż nie ma potrzeby, aby źródła i dokumenty były w słoiku, a nie zwykły plik .zip. – ColinD

8

Istnieje kilka różnic technicznych, ale w większości przypadków są one mało istotne, więc w zasadzie TAK, są to te same pojęcia.

+0

Dzięki; Rozumiem, dlaczego powiedziałeś, że to ta sama koncepcja. –

4

Na jednym poziomie są one koncepcyjnie podobne (fragment kodu bajtowego w pakiecie). Ich implementacja jest jednak bardzo odmienna.

Plik JAR jest w rzeczywistości plikiem ZIP zawierającym niektóre metadane i wszystkie pliki Java .class (tak, faktycznie można je otworzyć jako plik ZIP i zobaczyć w środku) i wszystko, co zostało w nim zapakowane (zasoby itp.).

Zespół .NET jest właściwie poprawnym plikiem PE dla systemu Win32 i może być w pewnym stopniu traktowany jako taki. SIEĆ .Plik exe faktycznie zaczyna się wykonywać jako kod natywny, który ładuje framework, który następnie ładuje kod bajtowy. "Wykonywanie" pliku JAR wymaga uruchomienia środowiska wykonawczego Java za pośrednictwem pliku .bat lub powiązania plików, które następnie ładuje plik JAR osobno.

Powiązane problemy