Quel est le moyen le plus pratique de voir le contenu du fichier .jar sans utiliser les commandes unzip/untar? Ce que je voudrais faire - c’est naviguer à l’intérieur à l’aide de la commande cd
, comme c’est le dossier habituel, voir le contenu, la taille des classes - 'ls -la'
.
MC
autorisé à le faire à la volée. Existe-t-il une alternative facile à utiliser?
Utilisez l’outil jar fourni avec le SDK Java pour répertorier le contenu d’un fichier jar. Comme décrit dans http://docs.Oracle.com/javase/7/docs/technotes/tools/windows/jar.html
$ jar tvf jarfile.jar
Ouvrez le pot dans vim comme ceci:
vim rabbitmq-client.jar
On vous présente une liste de fichiers:
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/
Placez le curseur sur le META-INF/MANIFEST.MF
et appuyez sur Enter. Vous voyez ceci:
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)
Modifiez quelques lignes en utilisant les commandes normales d'édition de vim.
press 'i' to enter insert mode
edit your lines
press :wq<enter> to write and quit
Vous êtes redirigé vers une liste de fichiers dans le jar, quittez.
:q <enter>
Vérifiez si les changements sont permanents:
Follow the above steps again to inspect the file again,
the change should still be there.
Celui-ci me suffisait toujours:
unzip -l <jarfile>
Je pense que les fichiers .jar
sont fondamentalement des fichiers .Zip
. Donc, je suppose que Fuse-Zip pourrait fonctionner.
Il suffit de renommer le fichier .jar en .Zip. IE, test.jar
à test.Zip
. Vous pourrez voir toutes les classes compilées. Si vous voulez voir la source elle-même, vous aurez besoin d'un décompilateur.
jar tvf jarfile.jar
jar xvf jarfile.jar
Vous pouvez utiliser un montage ssh pour disposer localement du système de fichiers du serveur. Ensuite, vous pouvez utiliser n’importe quel logiciel disponible localement pour naviguer dans le système de fichiers, par exemple, Far Manager
est très puissant pour naviguer dans les archives.
Dans cette solution, vous n'avez besoin d'aucun logiciel supplémentaire sur le serveur, mais uniquement de sshd.
Si vous souhaitez voir le contenu dans l'ordre des dates comme je l'ai fait:
jar tvf jarfile.{e,j,w}ar | sort -k 7,7 -k 3,3M -k 4,4n -k5,5