21

Каков наиболее удобный способ просмотра содержимого файла .jar без использования команд unzip/untar? То, что я хотел бы сделать - это просмотреть внутри с помощью команды cd как будто это обычная папка, увидеть содержимое, размер классов - 'ls -la' .

MC позволил сделать это на лету. Есть ли какая-нибудь легкая в использовании альтернатива?

8 ответов8

26

Используйте инструмент jar, поставляемый с Java SDK, для просмотра содержимого файла jar. Как описано в http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jar.html

$ jar tvf jarfile.jar
8

Этого мне всегда было достаточно:

unzip -l <jarfile>

8

Используйте 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.
2

Я думаю, что файлы .jar - это в основном файлы .zip . Так что, я думаю, fuse-zip может сработать.

1

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

0
  • Для просмотра содержимого: jar tvf jarfile.jar
  • Извлечь : jar xvf jarfile.jar
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .