Linux: cách thuận tiện nhất để xem nội dung của tệp .jar


23

Cách thuận tiện nhất để xem nội dung của tệp .jar w / o bằng cách sử dụng các lệnh unzip / unsar là gì? Những gì tôi muốn làm - là duyệt bên trong bằng cách sử dụng cdlệnh như nó là thư mục thông thường, xem nội dung, kích thước của các lớp - 'ls -la'.

MCđược phép làm như vậy trên bay. Có bất kỳ thay thế dễ sử dụng?



@ekaj ít hơn và giải nén không giúp tôi - nó không hiển thị cho tôi kích thước tệp trong kho lưu trữ, hoặc ngày & giờ sửa đổi cuối cùng (trừ khi tôi giải nén nó ở đâu đó thành / tmp / AAA và sau đó sẽ chạy ls -la chống lại / tmp / AAA - đó là những gì tôi muốn tránh).
javagirl

Không giải nén tệp .zip, chỉ cần mở nó. Bạn có thể xem kích thước và ngày sửa đổi.
cutrightjm

Làm thế nào tôi có thể mở nó trong dòng lệnh máy chủ linux?
javagirl

@javagirl: unzip -l không hiển thị cho bạn kích thước của tệp trong kho lưu trữ và ngày & giờ sửa đổi cuối cùng mà không giải nén gói. Xem câu trả lời của tôi dưới đây. Trên thực tế, đây một bản sao như ekaj đề xuất.
DevSolar

Câu trả lời:



12

Sử dụng vim để xem và chỉnh sửa nội dung của tệp jar mà không cần giải nén:

Mở bình trong vim như thế này:

vim rabbitmq-client.jar

Bạn được trình bày với một danh sách các tập tin:

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/

Đặt con trỏ lên META-INF/MANIFEST.MFvà nhấn Enter. Bạn thấy điều này:

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)

Thay đổi một vài dòng bằng cách sử dụng các lệnh chỉnh sửa vim bình thường.

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

Bạn được đưa trở lại một danh sách các tập tin trong jar, thoát ra.

:q <enter>

Kiểm tra xem nếu thay đổi là vĩnh viễn:

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

Nhân viên tuyệt vời, cảm ơn. Mặc dù câu trả lời đúng (như đối với tôi) là giải nén - nhưng ví dụ đó của vim thực sự được đánh giá cao.
setevoy

Tại sao nội dung tệp jar của tôi hiển thị tệp nhị phân?
John Joe

@JohnJoe: Bởi vì Vim của bạn không xác định đó là kho lưu trữ ZIP (mà .jar có hiệu quả). Điều này gợi ý về một thiết lập Vim bị hỏng, hoặc quá cơ bản. Nếu vấn đề vẫn còn, hãy xem xét dùng nó để vi.SE .
DevSolar

1
@JohnJoe, bạn phải cài đặt vim mới nhất: yum install --assumeyes vim-
advanced

8

Điều này luôn luôn là đủ cho tôi:

unzip -l <jarfile>


2

Tôi nghĩ rằng .jarcác tập tin về cơ bản là .zipcác tập tin. Vì vậy, tôi đoán, cầu chì-zip có thể hoạt động.


1
Đây là câu trả lời tôi sẽ thực hiện nếu bạn thực sự muốn điều hướng đến kho lưu trữ .zip giống như một thư mục. (hoặc ít nhất đó là cách tôi hiểu rằng nó hoạt động)
cutrightjm

Tôi không thể cài đặt công cụ bổ sung cho máy chủ, trừ khi tôi không hỏi câu hỏi này chỉ bằng cách cài đặt MC
javagirl

1

Chỉ cần đổi tên tệp .jar thành .zip. IE, test.jarđể test.zip. Bạn sẽ có thể thấy tất cả các lớp được biên dịch. Tuy nhiên, nếu bạn muốn xem nguồn của nó, bạn sẽ cần một trình dịch ngược.


xin lỗi, tôi đã không nhận được nó Sự khác biệt là gì? tôi vẫn không thể thực hiện lệnh ls, cd đối với tệp * .zip.
javagirl

@javagirl Bạn chỉ có thể mở các tệp .zip, theo như tôi biết, bằng cách nhấp vào chúng nếu bạn không cài đặt bất kỳ phần mềm bổ sung nào. IE, bạn sẽ không gửi cd cho họ vì chúng không phải là thư mục.
cutrightjm

nếu bạn sử dụng 'mc' trong linux, bạn sẽ biết rằng bạn có thể duyệt qua nội dung của tệp zip / jar, vì nó làm cho nó không hoạt động. Câu hỏi của tôi là về giải pháp thay thế cho 'mc', bởi vì tôi đã nghe rất nhiều guru linux nói rằng họ có thể tránh 'mc' và sử dụng dòng lệnh thuần túy với cùng kết quả và hiệu quả. Và tôi không thể 'nhấp' vào tệp zip xa như tôi đang ở dòng lệnh máy chủ linux
javagirl

Vâng, đây là một thay thế.
cutrightjm

0

Bạn có thể sử dụng mount ssh để có hệ thống tệp của máy chủ cục bộ. Sau đó, bạn có thể sử dụng bất kỳ phần mềm có sẵn cục bộ nào để điều hướng hệ thống tệp, ví dụ: Far Managerrất mạnh để điều hướng vào kho lưu trữ.

Trong giải pháp này, bạn không cần bất kỳ phần mềm bổ sung nào trên máy chủ, chỉ sshd.


0

Trong trường hợp bạn muốn xem nội dung theo thứ tự ngày như tôi đã làm:

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


0
  • Để liệt kê nội dung: jar tvf jarfile.jar
  • Để giải nen: jar xvf jarfile.jar

Đây có vẻ là một câu trả lời tốt nhưng bạn nên cố gắng làm cho nó "cứng hơn". Câu trả lời có thể phù hợp với một hoặc hai dòng thường tốt hơn là nhận xét (một khi bạn có đủ đại diện).
Anaksunaman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.