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?



@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.

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


2

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


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.


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.


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


0
  • Untuk daftar konten: jar tvf jarfile.jar
  • Untuk mengekstrak: jar xvf jarfile.jar

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.