Amazon Linuxインスタンスで、PuTTYを介してjarファイルをリモートで編集しようとしています。 vim
は、jarに含まれているファイルのリストを含むプロンプトを表示する便利なナビゲーターを提供します。
> vim filename.jar
" Zip.vim version v22
" Browsing zipfile /home/ec2-user/tigase/libs/tigase-muc.jar
" Select a file with cursor and press ENTER
453 01-14-2013 10:01 META-INF/MANIFEST.MF
110 01-14-2013 10:01 META-INF/maven/tigase/tigase-muc/pom.properties
4675 01-14-2013 10:01 META-INF/maven/tigase/tigase-muc/pom.xml
5751 01-14-2013 10:01 tigase/component/AbstractComponent.class
2337 01-14-2013 10:01 tigase/component/AbstractComponent$1.class
....
ただし、ファイル(AbstractComponent.classなど)を選択してEnterキーを押すと、vim内で次のようになります。
caution: filename not matched: 5751 01-14-2013 10:01 tigase/component/AbstractComponent.class
ファイルが開きません。
ちなみに、jarファイルを(unzip
またはjar
のいずれかで)抽出し、抽出したファイルをvimで開くと、内容が正しくフォーマットされていないことにも気づきました。
Êþº¾^@^@^@2^A^[^H^@ ^H^@
^H^@^K^H^@^U^H^@^V^H^@!^H^@#^H^@^^A^@) stanza already with type='...
^A^@^C()I^A^@^C()V^A^@^C()Z^A^@^F<init>^A^@^NDEFAULT_WRITER^A^@^WFE...
....
エラーやフォーマットの問題を克服する方法はありますか?
ただし、ファイル(AbstractComponent.classなど)を選択してEnterキーを押すと、vim内で次のようになります。
注意:ファイル名が一致しません
これはおそらくvimのZipプラグインの既知のバグです-プラグインはZipコメントを含むZipファイルを適切に処理しません。たとえば、 このメーリングリストの投稿
ちなみに、jarファイルを(unzipまたはjarで)抽出し、抽出したファイルをvimで開くと、内容が正しくフォーマットされていないことにも気づきました。
これは、JAR内のほとんどのファイルがコンパイルされているためですJavaクラスファイル(ファイルサフィックス.class
)。これらはバイナリデータであり、vimはtextエディタであり、バイナリエディタではないため、これらの編集にはあまり適していません。
xxd
コマンドを使用してvimで編集するか( vimドキュメント の「xxdの使用」を参照)、( vim docs など)の16進エディターを使用できます。 = /// =)bvi(---)。
いずれにせよ、クラスファイルを読み取るにはバイナリクラスファイル形式を理解する必要があるため、クラスファイルの内容を直接表示することはほとんど役に立ちません。
JAR内でファイルを開こうとしている理由を説明してください。それなら多分私達は助けることができます。
これが私がフォーマットの問題を解決した方法です。
最初にemacsをインストールします
yum install emacs
次に、以下のコマンドを使用してコンテンツを読み取ります
emacs somejar.jar
コンテンツを選択してEnter
を押します
保存してエディターを終了するには、C-x C-s(Ctrl + x、続いてCtrl + s)を押します。