Linux: що є найзручнішим способом перегляду вмісту файлу .jar


23

Який найзручніший спосіб побачити вміст файлу .jar без / за допомогою команд unzip / untar? Що я хотів би зробити - це переглядати всередину за допомогою cdкоманди, як це звичайна папка, бачити вміст, розмір класів - 'ls -la'.

MCдозволено робити це на льоту. Чи є альтернатива простоти у використанні?



@ekaj менше і unzip не допомагає мені - він не показує мені розмір файлів в архіві, наприклад, або дату і час останньої модифікації (якщо я не розпакую його десь до / tmp / AAA і тоді запустить ls -la проти / tmp / AAA - чого я хочу уникати).
javagirl

Не розпаковуйте .zip файл, просто відкрийте його. Ви можете побачити розміри та дати модифікації.
cutrightjm

як я можу відкрити його в командному рядку сервера linux?
javagirl

@javagirl: unzip -l дійсно показати вам розмір файлів в архіві і дату і час останньої модифікації без розпакування пакету. Дивіться мою відповідь нижче. На насправді, це є дублікатом , як ekaj запропонував.
DevSolar

Відповіді:



12

Використовуйте vim для перегляду та редагування вмісту файлу jar, не вилучаючи:

Відкрийте банку в vim так:

vim rabbitmq-client.jar

Вам представлений список файлів:

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/

Покладіть курсор на META-INF/MANIFEST.MFі натисніть Enter. Ви бачите це:

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)

Змініть кілька рядків, використовуючи звичайні команди редагування vim.

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

Ви повернетесь до списку файлів у банку, вийдіть із системи.

:q <enter>

Перевірте, чи є зміни постійними:

Follow the above steps again to inspect the file again, 
the change should still be there.

Чудовий персонал, спасибі Хоча правильна відповідь (як на мене) нечітка - але приклад цього vim дуже цінується.
сетевой

чому вміст мого баночного файлу показує двійковий файл?
Джон Джо

@JohnJoe: Тому що ваш Vim не ідентифікує його як ZIP-архів (що фактично є .jar). Це натякає на зламану або занадто базову установку Vim. Якщо ця проблема НЕ усунена, розглянути питання про прийняття його до vi.SE .
DevSolar

1
@JohnJoe, вам доведеться встановити останній vim: yum install --assumeyes vim-посилений
TraxX


2

Я думаю, що .jarфайли - це в основному .zipфайли. Тож, мабуть, запобіжник може спрацювати.


1
Це відповідь, з якою я б пішов, якщо ви насправді хочете перейти до архіву .zip, як папка. (або, принаймні, так я зрозумів, що це працює)
cutrightjm

Я не можу встановити додаткові речі на сервер, якщо тільки я не ставлю це питання, просто встановивши MC
javagirl

1

Просто перейменуйте .jar файл у .zip. IE, test.jarдо test.zip. Ви зможете побачити всі складені класи. Якщо ви хочете переглянути джерело його самості, вам знадобиться декомпілятор.


вибачте, я цього не зрозумів. яка різниця? я досі не можу виконати команду ls, cd проти файлу * .zip.
javagirl

@javagirl Ви можете відкривати .zip файли, наскільки я знаю, лише натискаючи на них, якщо ви не збираєтесь встановлювати додаткове програмне забезпечення. IE, ви не збираєтеся CD до них, тому що вони не є каталогами.
cutrightjm

якби ви використовували 'mc' в Linux, ви знаєте, що ви можете переглядати вміст zip / jar-файлу, оскільки він робить розпакування під час руху. Моє запитання стосувалося альтернативи 'mc', тому що я чув багато гуру Linux, який говорив, що вони можуть уникнути 'mc' та використовувати чистий командний рядок з тим же результатом та ефективністю. І я не можу "натискати" на zip-файл, наскільки я знаходжусь у командному рядку сервера linux
javagirl

Ну, це альтернатива.
cutrightjm

0

Ви можете використовувати ssh mount для локальної файлової системи сервера. Після цього ви можете використовувати будь-яке місцеве програмне забезпечення для навігації по файловій системі, наприклад Far Manager, дуже потужне для навігації в архіви.

У цьому рішенні вам не потрібне додаткове програмне забезпечення на сервері, лише sshd.


0

Якщо ви хочете побачити вміст у порядку, як я це зробив:

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


0
  • Щоб перерахувати вміст: jar tvf jarfile.jar
  • Для вилучення: jar xvf jarfile.jar

Це, здається, може бути гарною відповіддю, але вам слід спробувати зробити його "біднішим". Відповіді, які можуть вписуватися в один чи два рядки, зазвичай краще сприймати як коментарі (як тільки у вас буде достатня кількість повторень).
Анаксунаман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.