Как изменить class файл java

Аватар пользователя Игорь Черкасов
Игорь Черкасов
30 ноября 2022

Исходный код, написанный на Java и сохраненный в файл с расширением .java, с помощью компилятора Javac компилируется в байт-код и сохраняется в двоичный файл с расширением .class для дальнейшего запуска на JVM (Java Virtual Machine).

Это исходный код Java в файле с расширением .java

public class MainClass {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

Это скомпилированный исходный код компилятором Javac и сохраненный в файл с расширением .class:

˾ھ   = "
      java/lang/Object <init> ()V      
   java/lang/System out Ljava/io/PrintStream;  Hello world!
      java/io/PrintStream println (Ljava/lang/String;)V     MainClass Code LineNumberTable LocalVariableTable this LMainClass; main ([Ljava/lang/String;)V args [Ljava/lang/String; 
SourceFile MainClass.java !               /     *נѠ                                 7      Ҡ
֠Ѡ      
                            !

Поэтому внесение изменений необходимо делать в исходном коде Java, т.е. в файле с расширением .java. После этого необходимо заново скомпилировать измененный код, чтобы внесенные изменения отразились в байт-коде и были сохранены в файл с расширением .class.

0 0
Аватар пользователя Никита Сысоев
Никита Сысоев
06 октября 2022

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

// Компилируем измененный файл с исходным кодом
javac Main.java

Появится файл с именем Main.class. Этот файл представляет из себя байт-код, сгенерированный компилятором. Запускаем этот файл, т.е. нашу программу, внутри JVM.

java Main

0 0
Основы Java за 14 дней
  • 62 урока в онлайн-тренажере
  • 4 живых вебинара и масскодинг
  • Помощь наставника на весь период обучения

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

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