Linux:查看.jar​​文件内容的最便捷方法是什么


23

使用unzip / untar命令查看不带.jar文件内容的最便捷方法是什么?我想做的是-使用cd命令浏览它,就像通常的文件夹一样,查看内容,类的大小- 'ls -la'

MC允许即时这样做。是否有任何易于使用的选择?



@ekaj less和解压缩对我没有帮助-例如,它没有显示存档中文件的大小或上次修改的日期和时间(除非我将其解压缩到/ tmp / AAA,然后将运行ls -la针对/ tmp / AAA-这是我要避免的)。
javagirl 2012年

不要解压缩.zip文件,只需打开它即可。您可以看到尺寸和修改日期。
cutrightjm 2012年

如何在linux服务器命令行中打开它?
javagirl 2012年

@javagirl:unzip -l 确实会向您显示存档中文件的大小以及上次修改的日期和时间,而无需打开软件包。请参阅下面的答案。实际上,这 ekaj建议的副本。
DevSolar 2012年

Answers:



12

使用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

您将被带回到jar中的文件列表,退出。

:q <enter>

检查是否更改是永久的:

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

很棒的员工,谢谢。尽管正确的答案(对我而言)已解压缩-但是该vim的示例确实值得赞赏。
setevoy '16

为什么我的jar文件内容显示二进制文件?
约翰·乔布

@JohnJoe:因为您的Vim不会将其标识为ZIP存档(实际上是.jar)。这暗示了Vim设置已损坏或过于基础。如果问题仍然存在,可以考虑采取它对vi.SE
DevSolar

1
@JohnJoe,您必须安装最新的vim:yum install --assumeyes vim-enhanced
TraxX


2

我认为.jar文件基本上是.zip文件。所以,我想保险丝拉链可以用。


1
如果您确实想导航到.zip存档(如文件夹),这就是我要回答的答案。(或者至少这就是我所理解的原理)
cutrightjm 2012年

我无法将其他东西安装到服务器,除非我不会仅仅通过安装MC来问这个问题
javagirl 2012年

1

只需将.jar文件重命名为.zip。IE浏览器,test.jartest.zip。您将能够看到所有已编译的类。但是,如果要查看源代码本身,则需要反编译器。


对不起,我没明白。有什么不同?我仍然无法对* .zip文件执行ls,cd命令。
javagirl 2012年

@javagirl据我所知,如果您不打算安装任何其他软件,则只能通过单击它们来打开.zip文件。IE,因为它们不是目录,所以您不会对其进行cd。
cutrightjm 2012年

如果您在Linux中使用'mc',您会知道可以浏览zip / jar文件的内容,因为它可以即时解压缩。我的问题是关于'mc'的替代品,因为我听过很多Linux专家说他们可以避免'mc'并使用具有相同结果和效率的纯命令行。而且我无法在Linux服务器命令行上“单击” zip文件
javagirl12年

好吧,这是另一种选择。
cutrightjm 2012年

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.