7

В экземпляре Amazon Linux я пытаюсь редактировать файл jar удаленно через putty. vim предоставляет удобный навигатор, который отображает подсказку со списком файлов в банке:

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

Есть идеи, как преодолеть ошибку или проблему форматирования?

2 ответа2

4

Однако после выбора файла (например, AbstractComponent.class) и нажмите Enter, в vim я получаю:

Внимание: имя файла не совпадает

Вероятно, это известная ошибка в ZIP-плагине vim - плагин неправильно обрабатывает ZIP-файлы, содержащие комментарии ZIP. Смотрите, например, этот список рассылки

В качестве примечания я также заметил, что если я извлекаю jar-файл (либо с помощью unzip, либо jar-файла) и открываю извлеченный файл с помощью vim, содержимое будет отформатировано

Это потому, что большинство файлов внутри JAR являются скомпилированными файлами классов Java (суффикс файла .class). Это двоичные данные, и vim не очень подходит для их редактирования, потому что vim - это текстовый редактор, а не бинарный редактор.

Вы можете редактировать их в vim, используя команду xxd (см. "Использование xxd" в документации vim), или вы можете использовать шестнадцатеричный редактор, такой как bvi.

Во всяком случае, непосредственный просмотр содержимого файла класса редко бывает полезен, так как для их чтения необходимо понимать формат файла двоичного класса.

Не могли бы вы объяснить, почему вы пытаетесь открыть файлы внутри JAR? Тогда, может быть, мы можем помочь.

1

Вот как я решил проблемы с форматированием.

Первая установка Emacs

 yum install emacs

Затем используйте команду ниже, чтобы прочитать содержимое

emacs somejar.jar

выберите содержимое и нажмите Enter

Чтобы сохранить и выйти из редактора, нажмите Cx Cs (Ctrl+x, затем Ctrl+s).

Источник: Как использовать редактор Emacs в Linux

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .