Как изменить class файл java
Исходный код, написанный на 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.
В Java class
файл представляет из себя файл с байт-кодом. Для его изменения достаточно внести изменение в исходный код, а затем скомпилировать его. Это можно сделать в среде разработки, нажав на зеленый треугольник, или вручную, запустив приложение-компилятор.
// Компилируем измененный файл с исходным кодом
javac Main.java
Появится файл с именем Main.class
. Этот файл представляет из себя байт-код, сгенерированный компилятором. Запускаем этот файл, т.е. нашу программу, внутри JVM
.
java Main