Linux: apa cara yang paling nyaman untuk melihat konten file .jar

23

Apa cara yang paling nyaman untuk melihat konten file .jar tanpa menggunakan perintah unzip / untar? Yang ingin saya lakukan - adalah menjelajah dalam menggunakan cdperintah seperti itu adalah folder biasa, melihat konten, ukuran kelas - 'ls -la'.

MCdiizinkan untuk melakukannya dengan cepat. Apakah ada alternatif yang mudah digunakan?

javagirl
sumber
@ekaj kurang dan unzip tidak membantu saya - itu tidak menunjukkan ukuran file dalam arsip misalnya, atau tanggal & waktu modifikasi terakhir (kecuali saya akan mendekompresnya di suatu tempat ke / tmp / AAA dan kemudian akan menjalankan ls -la terhadap / tmp / AAA - yang ingin saya hindari).
javagirl
Jangan unzip file .zip, buka saja. Anda dapat melihat ukuran dan tanggal modifikasi.
cutrightjm
bagaimana saya bisa membukanya di baris perintah server linux?
javagirl
@javagirl: unzip -l tidak menunjukkan ukuran file dalam arsip dan tanggal & waktu modifikasi terakhir tanpa membongkar paket. Lihat jawaban saya di bawah ini. Sebenarnya, ini adalah duplikat seperti yang disarankan ekaj.
DevSolar

Jawaban:

12

Gunakan vim untuk melihat dan mengedit isi file jar tanpa mengekstraksi:

Buka toples dalam vim seperti ini:

vim rabbitmq-client.jar

Anda disajikan daftar file:

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/

Letakkan kursor di atas META-INF/MANIFEST.MFdan tekan Enter. Anda melihat ini:

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)

Ubah beberapa baris menggunakan perintah pengeditan vim normal.

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

Anda dibawa kembali ke daftar file dalam toples, keluar.

:q <enter>

Periksa apakah perubahannya permanen:

Follow the above steps again to inspect the file again, 
the change should still be there.
Eric Leschinski
sumber
Staf yang luar biasa, terima kasih. Meskipun jawaban yang benar (seperti untuk saya) adalah unzip - tetapi contoh vim itu sangat dihargai.
setevoy
mengapa konten file jar saya menampilkan file biner?
John Joe
@ JohnJoe: Karena Vim Anda tidak mengidentifikasinya sebagai arsip ZIP (yang merupakan .jar secara efektif). Ini mengisyaratkan setup Vim yang rusak atau terlalu mendasar. Jika itu masalah tetap terjadi, mempertimbangkan untuk mengambil ke vi.SE .
DevSolar
1
@JohnJoe, Anda harus menginstal vim terbaru: yum install --assumeyes vim-enhanced
TraxX
8

Yang ini selalu cukup bagi saya:

unzip -l <jarfile>

DevSolar
sumber
2

Saya pikir .jarfile pada dasarnya adalah .zipfile. Jadi, saya kira, sekering-zip bisa berfungsi.

Der Hochstapler
sumber
1
Ini adalah jawaban yang akan saya ajukan jika Anda benar-benar ingin menavigasi ke arsip .zip seperti folder. (atau setidaknya itulah yang saya mengerti bahwa itu bekerja)
cutrightjm
Saya tidak dapat menginstal hal-hal tambahan ke server, kecuali saya tidak akan menanyakan pertanyaan ini hanya dengan menginstal MC
javagirl
1

Cukup ganti nama file .jar ke .zip. Yaitu test.jaruntuk test.zip. Anda akan dapat melihat semua kelas yang dikompilasi. Namun, jika Anda ingin melihat sumbernya sendiri, Anda memerlukan dekompiler.

cutrightjm
sumber
maaf saya tidak mengerti. Apa bedanya? saya masih tidak bisa melakukan ls, perintah cd terhadap file * .zip.
javagirl
@javagirl Anda hanya dapat membuka file .zip, sejauh yang saya tahu, dengan mengkliknya jika Anda tidak akan menginstal perangkat lunak tambahan apa pun. Yaitu, Anda tidak akan melakukan cd kepada mereka karena mereka bukan direktori.
cutrightjm
jika Anda akan menggunakan 'mc' di linux Anda akan tahu bahwa Anda dapat menelusuri isi file zip / jar, karena itu membuat unzipping saat terbang. Pertanyaan saya adalah tentang alternatif untuk 'mc', karena saya mendengar banyak guru linux mengatakan mereka dapat menghindari 'mc' dan menggunakan baris perintah murni dengan hasil dan efisiensi yang sama. Dan saya tidak dapat 'mengklik' pada file zip sejauh yang saya pada baris perintah server linux
javagirl
Nah, ini alternatifnya.
cutrightjm
0

Anda dapat menggunakan ssh mount untuk memiliki sistem file server secara lokal. Setelah itu, Anda dapat menggunakan perangkat lunak apa pun yang tersedia secara lokal untuk menavigasi sistem file, misalnya Far Managersangat kuat untuk menavigasi ke arsip.

Dalam solusi ini Anda tidak memerlukan perangkat lunak tambahan di server, hanya sshd.

kan
sumber
0

Jika Anda ingin melihat konten dalam urutan tanggal seperti yang saya lakukan:

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

JStrahl
sumber
0
  • Untuk daftar konten: jar tvf jarfile.jar
  • Untuk mengekstrak: jar xvf jarfile.jar
Athi
sumber
Ini sepertinya jawaban yang berpotensi bagus tetapi Anda harus membuatnya "lebih gemuk". Jawaban yang dapat dimasukkan ke dalam satu atau dua baris seringkali lebih baik sebagai komentar (setelah Anda memiliki cukup perwakilan).
Anaksunaman