Linux: วิธีที่สะดวกที่สุดในการดูเนื้อหาของไฟล์. jar คืออะไร


23

วิธีที่สะดวกที่สุดในการดูเนื้อหาของ. jar คืออะไรโดยใช้คำสั่ง unzip / untar? สิ่งที่ผมอยากจะทำ - คือการเรียกดูภายในโดยใช้cdคำสั่งเหมือนเป็นโฟลเดอร์ปกติเห็นเนื้อหาขนาดของชั้นเรียน 'ls -la'-

MCได้รับอนุญาตให้ทำเช่นนั้นได้ทันที มีทางเลือกอื่นที่ใช้งานง่ายหรือไม่?



@ekaj less และ unzip ไม่ช่วยฉัน - มันไม่แสดงให้ฉันเห็นขนาดของไฟล์ในไฟล์เก็บถาวรหรือวันที่ & เวลาของการแก้ไขครั้งสุดท้าย เทียบกับ / tmp / AAA - ซึ่งเป็นสิ่งที่ฉันต้องการหลีกเลี่ยง)
javagirl

อย่าเปิดเครื่องรูดไฟล์. zip เพียงแค่เปิด คุณสามารถดูขนาดและวันที่แก้ไข
cutrightjm

ฉันจะเปิดมันในบรรทัดคำสั่งเซิร์ฟเวอร์ลินุกซ์ได้อย่างไร
javagirl

@javagirl: unzip -l จะแสดงขนาดของไฟล์ในไฟล์เก็บถาวรและวันที่ & เวลาของการแก้ไขครั้งล่าสุดโดยไม่ต้องแกะแพคเกจ ดูคำตอบของฉันด้านล่าง จริงๆแล้วนี่คือสิ่งที่ซ้ำกันตามที่ ekaj แนะนำ
DevSolar

คำตอบ:



12

ใช้เป็นกลุ่มเพื่อดูและแก้ไขเนื้อหาของไฟล์ jar โดยไม่แตกไฟล์:

เปิดไหในกลุ่มอย่างนี้:

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 edit ปกติ

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.

พนักงานยอดเยี่ยมขอบคุณ แม้ว่าคำตอบที่ถูกต้อง (สำหรับฉัน) ก็เปิดเครื่องรูด - แต่ตัวอย่างของเสียงเรียกเข้านั้นชื่นชมจริง ๆ
setevoy

ทำไมเนื้อหาไฟล์ jar ของฉันจึงแสดงไฟล์ไบนารี
John Joe

@JohnJoe: เพราะ Vim ของคุณไม่ได้ระบุว่าเป็นไฟล์ ZIP (ซึ่งเป็น. jar ที่มีประสิทธิภาพ) คำแนะนำนี้เป็นการตั้งค่า Vim ที่เสียหรือพื้นฐานเกินไป หากยังคงมีปัญหาที่พิจารณาการให้vi.SE
DevSolar

1
@JohnJoe คุณต้องติดตั้ง vim ล่าสุด: yum install --assumeyes เพิ่ม vim
TraxX


2

ฉันคิดว่า.jarไฟล์เป็น.zipไฟล์โดยทั่วไป ดังนั้นฉันคิดว่าฟิวส์-zipสามารถใช้งานได้


1
นี่คือคำตอบที่ฉันต้องการถ้าคุณต้องการนำทางไปยังไฟล์. zip แบบโฟลเดอร์ (หรืออย่างน้อยนั่นก็เป็นวิธีที่ฉันเข้าใจว่ามันใช้งานได้)
cutrightjm

ฉันไม่สามารถติดตั้งสิ่งเพิ่มเติมไปยังเซิร์ฟเวอร์เว้นแต่ว่าฉันจะไม่ถามคำถามนี้เพียงแค่ติดตั้ง MC
javagirl

1

เพียงเปลี่ยนชื่อไฟล์. jar เป็น. zip IE, เพื่อtest.jar test.zipคุณจะสามารถดูคลาสที่คอมไพล์ได้ทั้งหมด อย่างไรก็ตามหากคุณต้องการดูแหล่งที่มาของตัวเองคุณจะต้องมีตัวถอดรหัส


ขอโทษฉันไม่ได้รับมัน อะไรคือความแตกต่าง? ฉันยังไม่สามารถทำ ls, คำสั่ง cd กับไฟล์ * .zip
javagirl

@javagirl คุณสามารถเปิดไฟล์. zip เท่าที่ฉันรู้ได้โดยคลิกที่ไฟล์หากคุณไม่ได้ติดตั้งซอฟต์แวร์เพิ่มเติมใด ๆ IE คุณจะไม่ไปหาพวกเขาเพราะพวกเขาไม่ใช่ไดเรกทอรี
cutrightjm

หากคุณใช้ 'mc' ใน linux คุณจะรู้ว่าคุณสามารถเรียกดูเนื้อหาของไฟล์ zip / jar ได้เพราะจะทำให้การคลายซิปทันที คำถามของฉันเกี่ยวกับทางเลือกในการ 'mc' เพราะฉันได้ยินกูรูลินุกซ์จำนวนมากบอกว่าพวกเขาสามารถหลีกเลี่ยง 'mc' และใช้บรรทัดคำสั่งที่บริสุทธิ์ด้วยผลลัพธ์และประสิทธิภาพเดียวกัน และฉันไม่สามารถ 'คลิก' ที่ไฟล์ zip เท่าที่ฉันอยู่บนบรรทัดคำสั่งเซิร์ฟเวอร์ linux
javagirl

นี่เป็นทางเลือก
cutrightjm

0

คุณสามารถใช้เมานต์ sshเพื่อให้ระบบไฟล์ของเซิร์ฟเวอร์อยู่ภายในเครื่อง หลังจากนั้นคุณสามารถใช้ซอฟต์แวร์ใด ๆ ที่มีในเครื่องเพื่อนำทางระบบไฟล์เช่น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

ดูเหมือนว่านี่อาจเป็นคำตอบที่ดี แต่คุณควรพยายามทำให้มัน "อ้วนขึ้น" คำตอบที่สามารถบรรจุลงในหนึ่งหรือสองบรรทัดมักจะดีกว่าเป็นความคิดเห็น (เมื่อคุณมีตัวแทนเพียงพอ)
Anaksunaman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.