Существует ли способ получить jadclipse, работающий с Eclipse 3.4?

Размер структуры больше, чем сумма ее частей из-за того, что называется упаковкой. У конкретного процессора есть предпочтительный размер данных, с которым он работает. Большинство современных процессоров предпочитают размер, если 32 бит (4 байта). Доступ к памяти, когда данные находятся на этом типе границы, более эффективен, чем те, которые охватывают эту границу размера.

Например. Рассмотрим простую структуру:

struct myStruct
{
   int a;
   char b;
   int c;
} data;

Если машина является 32-разрядной машиной, а данные выровнены по 32-битной границе, мы видим немедленную проблему (при отсутствии выравнивания структуры). В этом примере предположим, что данные структуры начинаются с адреса 1024 (0x400 - обратите внимание, что младшие 2 бита равны нулю, поэтому данные выравниваются с 32-разрядной границей). Доступ к data.a будет работать нормально, потому что он начинается на границе - 0x400. Доступ к data.b также будет работать нормально, поскольку он находится по адресу 0x404 - еще одна 32-разрядная граница. Но неуравновешенная структура поставит data.c по адресу 0x405. 4 байта данных.c находятся в 0x405, 0x406, 0x407, 0x408. На 32-битной машине система считывала data.c в течение одного цикла памяти, но получала бы только 3 из 4 байтов (четвертый байт находится на следующей границе). Таким образом, системе потребуется второй доступ к памяти для получения 4-го байта,

Теперь, если вместо того, чтобы поместить data.c по адресу 0x405, компилятор заполнил структуру на 3 байта и поместил данные. c по адресу 0x408, тогда системе потребуется всего 1 цикл, чтобы прочитать данные, сократив время доступа к этому элементу данных на 50%. Заполняет эффективность памяти для эффективности обработки. Учитывая, что компьютеры могут иметь огромные объемы памяти (много гигабайт), компиляторы считают, что своп (скорость над размером) является разумным.

К сожалению, эта проблема становится убийцей при попытке отправить структуры по сети или даже записать двоичные данные в двоичный файл. Прокладка, вставленная между элементами структуры или класса, может нарушить данные, отправленные в файл или сеть. Чтобы написать переносимый код (тот, который будет использоваться для нескольких разных компиляторов), вам, вероятно, придется обращаться к каждому элементу структуры отдельно, чтобы обеспечить надлежащую «упаковку».

С другой стороны, разные компиляторы имеют разные возможности для управления упаковкой структуры данных. Например, в Visual C / C ++ компилятор поддерживает команду #pragma pack. Это позволит вам настроить упаковку и выравнивание данных.

Например:

#pragma pack 1
struct MyStruct
{
    int a;
    char b;
    int c;
    short d;
} myData;

I = sizeof(myData);

Теперь я должен иметь длину 11. Без прагмы я мог бы быть чем угодно из 11 до 14 (а для некоторых систем - до 32), в зависимости от стандартной упаковки компилятора.

8
задан Alex Argo 23 September 2008 в 05:26
поделиться

13 ответов

Я успешно использую JadClipse с Eclipse 3.4

Eclipse 3.4.0. I20080617-2000
JadClipse 3.3.0

Это просто работает!

Править: На самом деле см. ответ OlegSOM ниже для дополнительных шагов, которые Вы, возможно, должны были бы не забыть делать, если как я Вы забываете читать документацию иногда!

6
ответ дан 3 November 2019 в 12:57
поделиться

У меня есть он работающий над Eclipse также:

Версия: 3.4.1 Идентификатор сборки: M20080911-1700

Сменные шаги установки просты - http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Installation

Я должен был загрузить сам JAD с зеркала сайта (исходного сайта не стало?) - http://www.varaneckas.com/jad

Я нахожусь на машине Windows, которая могла бы иметь значение.

0
ответ дан 3 November 2019 в 12:57
поделиться

Следуйте инструкциям в этой ссылке

http://www.devx.com/Java/Article/22657

Но при загрузке jadclipse плагина для Eclipse из http://sourceforge.net/projects/jadclipse/

Просто загрузите эту банку "сеть sf.jadclipse_3.3.0.jar" и поместите ее в папку плагинов Eclipse, Остальное - тот же способ, которым это находится в первой ссылке.

0
ответ дан 3 November 2019 в 12:57
поделиться

то, что работало на меня, - то, что я перешел к Окну> Предпочтения...> Общий> Редакторы> Ассоциации файлов и сбросил значение по умолчанию. Я установил значение по умолчанию на "Средство просмотра Файла Класса" и спину к "Средству просмотра Файла Класса Jadclipse". Нет это работает по некоторым причинам.:) Если Вам не повезло, попробуйте это.

0
ответ дан 3 November 2019 в 12:57
поделиться

Я не могу добраться для создания сменной работы с ganymede (версия Linux). При установке jadclipse средства просмотра класса я получаю следующую ошибку в файле журнала рабочей области (.metadata/.log)

java.lang.IncompatibleClassChangeError
        at net.sf.jadclipse.JadclipseClassFileEditor.doOpenBuffer(JadclipseClassFileEditor.java:101)
        at net.sf.jadclipse.JadclipseClassFileEditor.doSetInput(JadclipseClassFileEditor.java:45)
        at net.sf.jadclipse.JadclipseActionBarContributor.setActiveEditor(JadclipseActionBarContributor.java:87)
        at org.eclipse.ui.internal.EditorActionBars.partChanged(EditorActionBars.java:335)
        at org.eclipse.ui.internal.WorkbenchPage$3.run(WorkbenchPage.java:628)
.....(i don't think the rest of the stack trace is important)

Возможно, jadclipse не совместим с версией своих зависимостей от затмения (на этой строке jadclipse, звонит классу, определенному в плагине JDT), но у меня не было времени для понимания этого.

Править: я просто перекомпилировал банку с помощью репозитория SVN и создал новую банку для java 1.5, и это, кажется, работает (Загрузка здесь). Просто загрузите мою банку и вставьте сменную папку затмения и удалите старое.

1
ответ дан 3 November 2019 в 12:57
поделиться

Nevermind мой вопрос выше - моя проблема был моими настройками для пути к jad.exe и временному каталогу.

В случае, если у кого-либо еще есть та же проблема, я сделал, удостоверьтесь, что путь к декомпилятору корректен (как "C:...\jad.exe"), и оставьте временный каталог в покое (для меня, это - "C:\Documents and Settings{user}.net.sf.jadclipse").

Это - довольно хорошая утилита - бесконечно более полезный, чем средство просмотра класса по умолчанию!

1
ответ дан 3 November 2019 в 12:57
поделиться

обновите свое затмение 3.4 для jadeclipse от справки-> обновления программного обеспечения, http://webobjects.mdimension.com/jadclipse/3.3 перезапускает затмение. установите jadeclipse свойства. это не делает просто работ.. это - решение.

7
ответ дан 3 November 2019 в 12:57
поделиться

Прочитайте внимательно документацию...:

  1. Плагин JadClipse не активируется, когда я запускаю Eclipse. Необходимо будет запустить Eclipse с - чистый флаг, чтобы позволить среде обнаруживать плагин. Последующий запуск Eclipse не потребует - чистый флаг. затмение - чистый

  2. Средство просмотра Файла Класса Eclipse вместо Средства просмотра Файла Класса JadClipse открыто. Перейдите к Окну> Предпочтения...> Общий> Редакторы> Ассоциации файлов и удостоверьтесь, что Средство просмотра Файла Класса JadClipse имеет ассоциацию файлов ПО УМОЛЧАНИЮ для *.class файлов. (-нажимают кнопку Default!!!)

Это действительно помогает :)))

19
ответ дан 3 November 2019 в 12:57
поделиться

Я просто смог успешно установить jadclipse с Ganymede. Чтобы сделать это я: 1) Установленный через справку-> обновления программного обеспечения http://webobjects.mdimension.com/jadclipse/3.3

2) Поместите исполняемый файл Вруба в каталог, который находится в пути выполнения Вашей операционной системы. С другой стороны, можно настроить путь к исполняемому файлу Вруба под Окном> Предпочтения...> Java> JadClipse> Путь к Декомпилятору. (Установите полный путь, например, C:\Program Files\Jad\jad.exe),

3) Перейдите к Окну> Предпочтения...> Общий> Редакторы> Ассоциации файлов и удостоверьтесь, что Средство просмотра Файла Класса JadClipse имеет ассоциацию файлов по умолчанию для *.class файлов.

4) Перезапустите Eclipse (затмение - чистый).

Это теперь работает отлично на меня!

0
ответ дан 3 November 2019 в 12:57
поделиться

Я следил за bhupendra (добавьте через Help> Software Updates> http://webobjects.mdimension.com/jadclipse/3.3 ), и у меня он сработал. Использование файла jar напрямую (даже перезапуск с -clean) не помогло.

0
ответ дан 3 November 2019 в 12:57
поделиться

У меня возникла проблема с запуском JadClipse в Eclipse Ганимед. Оказывается, плагин Groovy конфликтовал с JadClipse. После удаления отличного плагина JadClipse работал нормально. Между прочим, вот в чем проблема:

Cannot complete the request.  See the details.
Unsatisfied dependency: [org.codehaus.groovy.eclipse.feature.feature.group 2.0.0.20090814-1100-e34-N] requiredCapability: org.eclipse.equinox.p2.iu/org.codehaus.groovy.eclipse.core.help/[2.0.0.20090814-1100-e34-N,2.0.0.20090814-1100-e34-N]
Unsatisfied dependency: [org.codehaus.groovy.eclipse.feature.feature.group 2.0.0.20090814-1100-e34-N] requiredCapability: org.eclipse.equinox.p2.iu/org.codehaus.groovy.jdt.patch.feature.group/[2.0.0.20090814-1100-e34-N,2.0.0.20090814-1100-e34-N]
Unsatisfied dependency: [org.codehaus.groovy.jdt.patch.feature.group 2.0.0.20090814-1100-e34-N] requiredCapability: org.eclipse.equinox.p2.iu/org.eclipse.jdt.feature.group/[3.4.2.r342_v20081217-7o7tEAoEEDWEm5HTrKn-svO4BbDI,3.4.2.r342_v20081217-7o7tEAoEEDWEm5HTrKn-svO4BbDI]
Unsatisfied dependency: [org.codehaus.groovy.eclipse.core.help 2.0.0.20090814-1100-e34-N] requiredCapability: osgi.bundle/org.eclipse.help/3.3.102
1
ответ дан 3 November 2019 в 12:57
поделиться

Для решения проблемы :

Перейти к окну > Параметры... > Общие > Редакторы > Ассоциации файлов и убедитесь, что JadClipse Class File Viewer имеет стандартную ассоциацию файлов для *.class файлов.

Перезапустите затмение (eclipse -clean).

0
ответ дан 3 November 2019 в 12:57
поделиться

использование этого сайта обновлений с myeclipse 8.5, похоже, работает нормально:

http://webobjects.mdimension.com/jadclipse/3.3

FYI Джефф

0
ответ дан 3 November 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: