Linux: co jest najwygodniejszym sposobem na sprawdzenie zawartości pliku .jar

23

Jaki jest najwygodniejszy sposób przeglądania zawartości pliku .jar bez użycia poleceń rozpakowania / untar? To, co chciałbym zrobić - to przeglądać wnętrze za pomocą cdpolecenia, tak jak to jest zwykły folder, widzieć zawartość, rozmiar klas - 'ls -la'.

MCwolno to robić w locie. Czy istnieje jakaś łatwa w użyciu alternatywa?

javagirl
źródło
@ekaj mniej i rozpakuj mi nie pomaga - nie pokazuje mi na przykład rozmiaru plików w archiwum, ani daty i godziny ostatniej modyfikacji (chyba że zdekompresuję go gdzieś do / tmp / AAA, a następnie uruchomię ls -la przeciwko / tmp / AAA - tego właśnie chcę uniknąć).
javagirl
Nie rozpakuj pliku .zip, po prostu otwórz go. Możesz zobaczyć rozmiary i daty modyfikacji.
cutrightjm
jak mogę go otworzyć w wierszu poleceń serwera Linux?
javagirl
@javagirl: unzip -l ma pokazać rozmiar plików w archiwum oraz datę i czas ostatniej modyfikacji bez rozpakowywania paczki. Zobacz moją odpowiedź poniżej. W rzeczywistości jest to duplikat, jak sugerował ekaj.
DevSolar

Odpowiedzi:

12

Użyj vima, aby wyświetlić i edytować zawartość pliku jar bez rozpakowywania:

Otwórz słoik w vimie w ten sposób:

vim rabbitmq-client.jar

Wyświetlana jest lista plików:

1 " zip.vim version v22
2 " Browsing zipfile /var/www/sandbox/eric/rabbitmq-client.jar
3 " Select a file with cursor and press ENTER
4
5 META-INF/
6 META-INF/MANIFEST.MF
7 com/
8 com/rabbitmq/
9 com/rabbitmq/client/
10 com/rabbitmq/client/impl/
11 com/rabbitmq/client/impl/recovery/
12 com/rabbitmq/tools/
13 com/rabbitmq/tools/json/
14 com/rabbitmq/tools/jsonrpc/
15 com/rabbitmq/utility/

Umieść kursor na META-INF/MANIFEST.MFi naciśnij Enter. Widzisz to:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_31-b31 (Sun Microsystems Inc.)
Export-Package: com.rabbitmq.client;version="3.3.5";uses:="com.rabbitm
 q.client.impl,com.rabbitmq.utility,javax.net,javax.net.ssl,javax.secu
 rity.auth.callback,javax.security.sasl",com.rabbitmq.client.impl;vers
 ion="3.3.5";uses:="com.rabbitmq.client,com.rabbitmq.utility,javax.net
 ",com.rabbitmq.client.impl.recovery;version="3.3.5";uses:="com.rabbit
 mq.client,com.rabbitmq.client.impl",com.rabbitmq.tools;version="3.3.5
 ";uses:="com.rabbitmq.utility",com.rabbitmq.tools.json;version="3.3.5
 ",com.rabbitmq.tools.jsonrpc;version="3.3.5";uses:="com.rabbitmq.clie
 nt",com.rabbitmq.utility;version="3.3.5"
Bundle-Vendor: SpringSource
Bundle-Version: 3.3.5
Tool: Bundlor 1.0.0.RELEASE
Bundle-Name: RabbitMQ Java AMQP client library
Bundle-ManifestVersion: 2
Bundle-SymbolicName: com.rabbitmq.client
Import-Package: javax.net;version="0",javax.net.ssl;version="0",javax.
 security.auth.callback;version="0",javax.security.sasl;version="0"

Name: rabbitmq-client
Specification-Title: AMQP
Specification-Version: 0.9.1
Specification-Vendor: AMQP Working Group (www.amqp.org)
Implementation-Title: RabbitMQ
Implementation-Version: 3.3.5
Implementation-Vendor: Rabbit Technologies Ltd. (www.rabbitmq.com)

Zmień kilka wierszy za pomocą normalnych poleceń edycji vima.

press 'i' to enter insert mode
edit your lines
press :wq<enter> to write and quit

Zostaniesz przeniesiony z powrotem do listy plików w słoiku, wyjdź.

:q <enter>

Sprawdź, czy zmiany są trwałe:

Follow the above steps again to inspect the file again, 
the change should still be there.
Eric Leschinski
źródło
Świetny personel, dzięki. Chociaż właściwa odpowiedź (jak dla mnie) jest rozpakowana - ale przykład tego vima naprawdę doceniono.
setevoy
dlaczego zawartość mojego pliku jar pokazuje plik binarny?
John Joe
@JohnJoe: Ponieważ twój Vim nie rozpoznaje go jako archiwum ZIP (którym skutecznie jest .jar). Wskazuje to na zepsuty lub zbyt podstawowy układ Vima. Jeśli ten problem będzie się powtarzał, należy rozważyć biorąc go do vi.SE .
DevSolar,
1
@JohnJoe, musisz zainstalować najnowszą wersję vima: yum install --assumeyes vim-ulepszone
TraxX
8

Ten zawsze mi wystarczał:

unzip -l <jarfile>

DevSolar
źródło
2

Myślę, że .jarpliki to w zasadzie .zippliki. Więc myślę, że bezpiecznik może działać.

Der Hochstapler
źródło
1
To jest odpowiedź, którą wybrałbym, jeśli naprawdę chcesz nawigować do archiwum .zip jak do folderu. (a przynajmniej tak rozumiałem, że to działa)
cutrightjm
Nie mogę zainstalować dodatkowych rzeczy na serwerze, chyba że nie zadałbym tego pytania po prostu instalując MC
javagirl 30.04.
1

Po prostu zmień nazwę pliku .jar na .zip. IE, test.jardo test.zip. Będziesz mógł zobaczyć wszystkie skompilowane klasy. Jeśli chcesz jednak zobaczyć źródło samodzielnie, potrzebujesz dekompilatora.

cutrightjm
źródło
przepraszam, nie rozumiem jaka jest różnica? Nadal nie mogę wykonać polecenia ls, cd przeciwko plikowi * .zip.
javagirl
@javagirl Możesz otwierać pliki .zip, o ile mi wiadomo, klikając je, jeśli nie zamierzasz instalować żadnego dodatkowego oprogramowania. IE, nie będziesz do nich cd, ponieważ nie są to katalogi.
cutrightjm
jeśli użyjesz 'mc' w Linuksie, wiedziałbyś, że możesz przeglądać zawartość pliku zip / jar, ponieważ powoduje to rozpakowanie w locie. Moje pytanie dotyczyło alternatywy dla „mc”, ponieważ słyszałem wielu guru z Linuksa, którzy mówili, że mogą uniknąć „mc” i używać czystej linii poleceń z tym samym wynikiem i wydajnością. I nie mogę „kliknąć” pliku zip, o ile jestem w wierszu poleceń serwera Linux
javagirl,
To jest alternatywa.
cutrightjm
0

Możesz użyć montowania ssh, aby mieć lokalnie system plików serwera. Następnie możesz korzystać z dowolnego lokalnie dostępnego oprogramowania do nawigacji w systemie plików, np. Far ManagerJest bardzo wydajny do nawigacji w archiwach.

W tym rozwiązaniu nie potrzebujesz żadnego dodatkowego oprogramowania na serwerze, tylko sshd.

kan
źródło
0

Jeśli chcesz zobaczyć zawartość w kolejności dat, tak jak ja:

jar tvf jarfile.{e,j,w}ar | sort -k 7,7 -k 3,3M -k 4,4n -k5,5

JStrahl
źródło
0
  • Aby wyświetlić zawartość: jar tvf jarfile.jar
  • Wydobywać: jar xvf jarfile.jar
Athi
źródło
To wydaje się być potencjalnie dobrą odpowiedzią, ale powinieneś postarać się, aby była „mocniejsza”. Odpowiedzi, które mogą zmieścić się w jednym lub dwóch wierszach, są zwykle lepiej w komentarzach (gdy masz wystarczającą liczbę powtórzeń).
Anaksunaman