Как открыть class файл java. Как открыть файл CLASS

Главный писатель по вопросам технологий

Вам кто-то послал по электронной почте файл CLASS, и вы не знаете, как его открыть? Может быть, вы нашли файл CLASS на вашем компьютере и вас заинтересовало, что это за файл? Windows может сказать вам, что вы не можете открыть его, или, в худшем случае, вы можете столкнуться с соответствующим сообщением об ошибке, связанным с файлом CLASS.

До того, как вы сможете открыть файл CLASS, вам необходимо выяснить, к какому виду файла относится расширения файла CLASS.

Tip: Incorrect CLASS file association errors can be a symptom of other underlying issues within your Windows operating system. These invalid entries can also produce associated symptoms such as slow Windows startups, computer freezes, and other PC performance issues. Therefore, it highly recommended that you scan your Windows registry for invalid file associations and other issues related to a fragmented registry.

Ответ:

Файлы CLASS имеют Файлы разработчика, который преимущественно ассоциирован с Unknown Apple II File (found on Golden Orchard Apple II CD Rom).

Файлы CLASS также ассоциированы с Java Class File (Sun Microsystems Inc.), Java Bytecode (Sun Microsystems Inc.), Gambas Gambas Class Source File (Gambas Team) и FileViewPro.

Иные типы файлов также могут использовать расширение файла CLASS. Если вам известны любые другие форматы файлов, использующие расширение файла CLASS, пожалуйста, свяжитесь с нами , чтобы мы смогли соответствующим образом обновить нашу информацию.

Как открыть ваш файл CLASS:

Самый быстрый и легкий способ открыть свой файл CLASS - это два раза щелкнуть по нему мышью. В данном случае система Windows сама выберет необходимую программу для открытия вашего файла CLASS.

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

Если ваш ПК открывает файл CLASS, но в неверной программе, вам потребуется изменить настройки ассоциации файлов в вашем реестре Windows. Другими словами, Windows ассоциирует расширения файлов CLASS с неверной программой.

Установить необязательные продукты - FileViewPro (Solvusoft) | | | |

CLASS Multipurpose Internet Mail Extensions (MIME):

  • mime application/java-vm
  • mime application/octet-stream
  • mime application/x-java-vm

CLASS Инструмент анализа файлов™

Вы не уверены, какой тип у файла CLASS? Хотите получить точную информацию о файле, его создателе и как его можно открыть?

Теперь можно мгновенно получить всю необходимую информацию о файле CLASS!

Революционный CLASS Инструмент анализа файлов™ сканирует, анализирует и сообщает подробную информацию о файле CLASS. Наш алгоритм (ожидается выдача патента) быстро проанализирует файл и через несколько секунд предоставит подробную информацию в наглядном и легко читаемом формате.†

Уже через несколько секунд вы точно узнаете тип вашего файла CLASS, приложение, сопоставленное с файлом, имя создавшего файл пользователя, статус защиты файла и другую полезную информацию.

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

Перетащите файл CLASS сюда для начала анализа

Просмотреть мой компьютер »

Пожалуйста, также проверьте мой файл на вирусы

Что это за файл - CLASS?

File with a .CLASS extension contains a compiled Java source code in binary form, it is executable within the Java virtual machine environment - JVM. CLASS files are created as a result of using the javac compiler on a file with a . extension. The may originate from different versions of Java environment (JRE), therefore, they may not be compatible with a specific version of JVM, but still they can be run. JRE and JVM are sometimes used interchangeably, as description of environment in which Java files are executed. Currently, the Oracle Corporation develops the environment, which was acquired by Sun Microsystems.

Some programming environments which support Java enable verification of the source code and compiling it on the fly, while writing programs. It helps to prevent errors within a project and enables its faster building and running. CLASS files are usually packed into JAR files, which enable gathering files from a project or a library in one place, defined with the $CLASSPATH environment variable.

Программа(ы), умеющие открыть файл .CLASS

Windows
Mac OS
Linux

Если появилась ситуация, в которой Вы не можете открыть файл CLASS на своем компьютере - причин может быть несколько. Первой и одновременно самой важной (встречается чаще всего) является отсутствие соответствующей аппликации обслуживающей CLASS среди установленных на Вашем компьютере.

Самым простым способом решения этой проблемы является нахождение и скачивание соответствующей аппликации. Первая часть задания, уже выполнена, - программы для обслуживания файла CLASS Вы найдете ниже. Теперь достаточно скачать и установить соответствующую аппликацию.

В дальнейшей части этой страницы Вы найдете другие возможные причины, вызывающие проблемы с файлами CLASS.

Возможные проблемы с файлами в формате CLASS

Отсутствие возможности открытия и работы с файлом CLASS, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом Java Bytecode Class Format. Ниже находится список возможных проблем.

  • Повреждение открываемого файла CLASS.
  • Ошибочные связи файла CLASS в записях реестра.
  • Случайное удаление описания расширения CLASS из реестра Windows
  • Некомплектная установка аппликации, обслуживающей формат CLASS
  • Открываемый файл CLASS инфицирован нежелательным, вредным программным обеспечением.
  • На компьютере слишком мало места, чтобы открыть файл CLASS.
  • Драйверы оборудования, используемого компьютером для открытия файла CLASS неактуальные.

Если Вы уверены, что все перечисленные поводы отсутствуют в Вашем случае (или были уже исключены), файл CLASS должен сотрудничать с Вашими программами без каких либо проблем. Если проблема с файлом CLASS все-таки не решена, это может значить, что в этом случае появилась другая, редкая проблема с файлом CLASS. В таком случае остается только помощь специалиста.

Unix Static Object Code Library Format
.a2w Alice Program World Format
.actx DS Game Maker Action Description Format
.ada ADA Language Source Code Format
.addin Microsoft Visual Studio Addin Format
Notatnik позволит нам увидеть часть данных, закодированных в файле. Этот метод позволяет просмотреть содержимое многих файлов, однако не в такой форме, как программа, предназначенная для их обслуживания.

Обычно при компиляции Java-файла получаются.class-файлы примерно того же размера, что и исходник. Меня заинтересовало, можно ли по небольшому исходнику сделать.class-файл, который больше, сильно больше исходника.

Можно поискать какие-то короткие конструкции языка, которые компилируются в длинные цепочки байткода, но линейный прирост меня не устраивал. Я сразу подумал про компиляцию finally-блоков: про неё уже писали на Хабре . Если вкратце, то для каждого finally-блока при непустом try-блоке создаётся минимум два варианта в байткоде: для случая нормального завершения try-блока и для случая завершения с исключением. В последнем случае исключение сохраняется в новую локальную переменную, выполняется код finally, затем исключение достаётся из локальной переменной и перебрасывается. А что если внутри finally снова разместить try-finally и так далее? Результат превзошёл все ожидания.

Я компилировал с помощью Oracle javac 1.7.0.60 и 1.8.0.25, результаты практически не отличались. Путь для исключения формируется даже в том случае, если в блоке try совсем ничего предосудительного. Например, присваивание целочисленной константы в локальную переменную - это две инструкции iconst и istore , ни про одну из них в спецификации не сказано, что они могут сгенерировать исключение. Так и будем писать:
class A {{ int a; try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { try {a=0;} finally { a=0; }}}}}}}}}}}} }}
Добавление нового нетривиального кода в самый внутренний finally вызывает ошибку компиляции code too large, поэтому ограничимся таким. Если кто-то подзабыл, это у нас блок инициализации , который подклеивается к каждому конструктору. Для нашей задачи метод объявлять смысла нет.

Такой исходник занимает 336 байт, а получившийся class-файл растаращило до 6 571 429 байт, то есть в 19 557 раз (назовём это коэффициентом растаращивания). Даже при отключении всей отладочной информации с помощью -g:none class-файл весит 6 522 221 байт, что ненамного меньше. Посмотрим, что внутри с помощью утилиты javap .

Пул констант
Пул констант получился небольшой: всего 16 записей. По сути всё самое необходимое: имена атрибутов типа Code, имя класса, Java-файла, ссылка на конструктор родительского класса Object и т. д. При отключении отладочной информации исчезают три записи: имена атрибутов LineNumberTable, SourceFile и значение A.java для атрибута SourceFile.
Код
Код конструктора по умолчанию составил 64507 байт, почти упираясь в максимально допустимый предел. Начинается он с нормального выполнения:

Код

0: aload_0 1: invokespecial #1 // Method java/lang/Object."":()V 4: iconst_0 5: istore_1 6: iconst_0 7: istore_1 8: iconst_0 9: istore_1 10: iconst_0 11: istore_1 12: iconst_0 13: istore_1 14: iconst_0 15: istore_1 16: iconst_0 17: istore_1 18: iconst_0 19: istore_1 20: iconst_0 21: istore_1 22: iconst_0 23: istore_1 24: iconst_0 25: istore_1 26: iconst_0 27: istore_1 28: iconst_0 29: istore_1 30: goto 38


То есть вызывается конструктор родительского класса, а затем 13 раз записывается единица в первую локальную переменную. После этого начинается длинная цепочка goto, которая обходит мимо всех остальных копий finally: 30->38->58->104->198->388->770->1536->3074->7168->15358->31740->64506, а по адресу 64506 мы находим долгожданную инструкцию return.

В промежутках между этими goto всевозможные комбинации нормальных и исключительных завершений каждого блока try. Неожиданным оказалось то, что для каждого finally, обрабатывающего исключение, для хранения исключения создаётся новая локальная переменная, даже если блоки заведомо взаимоисключающие. Из-за этого коду требуется 4097 локальных переменных. Небольшая статистика по инструкциям:

  • iconst_1 - 8191 раз
  • istore_1 - 8191 раз
  • goto - 4095 раз
  • athrow - 4095 раз
  • astore_2/aload_2 - 1 раз
  • astore_3/aload_3 - 1 раз
  • astore/aload - 252 раза (локальные переменные с номерами от 4 до 255)
  • astore_w/aload_w - 3841 раз (локальные переменные с номерами больше 255)
Плюс один aload_0, один invokespecial и один return - итого 32765 инструкций. Желающие могут нарисовать граф потока управления и повесить на стенку.
Таблица исключений
Таблица исключений содержит записи вида (start_pc, end_pc, handler_pc, catch_type) и говорит виртуальной машине «если при выполнении инструкций от адреса start_pc до адреса end_pc произошло исключение типа catch_type, то передай управление на адрес handler_pc». В данном случае catch_type везде равен any, то есть исключения любого типа. Записей в таблице 8188 и занимает она примерно столько же, сколько и код - около 64 килобайт. Начало выглядит так:
from to target type 26 28 33 any 24 26 41 any 42 44 49 any 49 51 49 any 22 24 61 any
Таблица номеров строк
Таблица номеров строк - это отладочная информация, сопоставляющая адресам инструкций байткода номера строк в исходнике. В ней 12288 записей и чаще всего попадаются ссылки на строчку с самым внутренним finally. Занимает она около 48 килобайт.
StackMapTable
Куда же ушло всё остальное место? Его заняла таблица StackMapTable , которая необходима для верификации class-файла. Если совсем грубо, для каждой точки ветвления в коде эта таблица содержит типы элементов в стеке и типы локальных переменных в данной точке. Так как локальных переменных у нас очень много и точек ветвления тоже, размер этой таблицы растёт квадратично от размера кода. Если бы локальные переменные для исключений в непересекающихся ветках переиспользовались, их бы потребовалось всего 13 и таблица StackMapTable была бы куда скромнее по размерам.
Таращим дальше
Можно ли растаращить class-файл ещё сильнее? Конечно, можно раскопировать метод, содержащий вложенные try-finally. Но компилятор вполне может сделать это за нас. Вспомните, что блок инициализации приклеивается к каждому конструктору автоматически. Достаточно добавить в код много пустых конструкторов с разными сигнатурами. Здесь будьте осторожны, а то у компилятора кончится память. Ну вот так можно скромненько написать, упаковав код в одну строчку:

Class A{{int a;try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{try{a=0;}finally{a=0;}}}}}}}}}}}}}A(){}A(int a){}A(char a){}A(double a){}A(float a){}A(long a){}A(short a){}A(boolean a){}A(String a){}A(Integer a){}A(Float a){}A(Short a){}A(Long a){}A(Double a){}A(Boolean a){}A(Character a){}}
Здесь у меня 16 конструкторов, исходник занимает 430 байт . После компиляции имеем 104 450 071 байт , коэффициент растаращивания составил 242 907 . И это не предел!

Компилированный файл.JAVA, созданный компилятором Java. Содержит байтовый код являющийся бинарным программным кодом, выполняемым при запуске Java Virtual Machine (JVM). Обычно встраивается в файлы.JAR, которые входят в состав среды $CLASSPATH, подходящей для исполнения.

Файлы CLASS можно компилировать из файлов JAVA при помощи команды javac, входящей в состав пакета инсталляции JVM. Многие интегрированные среды разработки Java, такие как Eclipse, могут компилировать файлы CLASS на ходу, пока разработчики пишут программный код.

Поскольку существует множество версий JVM (например, 1.4, 1.5 и 1.6), некоторые файлы CLASS могут быть несовместимы с определенными версиями JVM. Java Runtime Environment (JRE) может выполнять файлы CLASS, но не может компилировать их, поскольку не включает в себя бинарный javac.

Примечание: компания Oracle приобрела Sun Microsystems - изначального разработчика Java. JRE и JVM часто используются как синонимы для ссылок на платформу, запускающую приложения Java.

Расширение файла.class представляет собой файл класса Java. Данный файл может быть открыт с помощью следующих программ: Oracle Java Runtime Environment, Eclipse IDE for Java Developers с подключаемым модулем JD-Eclipse, dirtyJOE, JD-GUI.

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

Поисковая система

Введите расширение файла

Помощь

Подсказка

Необходимо учесть, что некоторые закодированные данные из файлов, которые наш компьютер не читает, иногда можно просмотреть в Блокноте. Таким образом мы прочитаем фрагменты текста или числа - Стоит проверить, действует ли этот метод также в случае файлов CLASS.

Что сделать, если приложение со списка уже было установлено?

Часто установленное приложение должно автоматически связаться с файлом CLASS. Если это не произошло, то файл CLASS успешно можно связать вручную с ново установленным приложением. Достаточно нажать правой кнопкой мышки на файл CLASS, а затем среди доступных выбрать опцию "Выбрать программу по умолчанию". Затем необходимо выбрать опцию "Просмотреть" и отыскать избранное приложение. Введенные изменения необходимо утвердить с помощью опции "OK".

Программы, открывающие файл CLASS

Windows
Mac OS
Linux

Почему я не могу открыть файл CLASS?

Проблемы с файлами CLASS могут иметь также другую почву. Иногда даже установление на компьютере программного обеспечения, обслуживающего файлы CLASS не решит проблему. Причиной невозможности открытия, а также работы с файлом CLASS может быть также:

Несоответственные связи файла CLASS в записях реестра
- повреждение файла CLASS, который мы открываем
- инфицирование файла CLASS (вирусы)
- слишком маленький ресурс компьютера
- неактуальные драйверы
- устранение расширения CLASS из реестра системы Windows
- незавершенная установка программы, обслуживающей расширение CLASS

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

Мой компьютер не показывает расширений файлов, что сделать?

В стандартных установках системы Windows пользователь компьютера не видит расширения файлов CLASS. Это успешно можно изменить в настройках. Достаточно войти в "Панель управления" и выбрать "Вид и персонализация". Затем необходимо войти в "Опции папок", и открыть "Вид". В закладке "Вид" находится опция "Укрыть расширения известных типов файлов" - необходимо выбрать эту опцию и подтвердить операцию нажатием кнопки "OK". В этот момент расширения всех файлов, в том числе CLASS должны появится сортированные по названию файла.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: