Generating Classes From Scratch - Hello World!ΒΆ

A simple example of the classic “Hello World!” program. The example will generate a ClassFile equivelent to this Java:

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
#!/usr/bin/env python
# -*- coding: utf8 -*-
An example showing how to create a "Hello World" class from scratch.
from jawa import ClassFile
from jawa.assemble import assemble

if __name__ == '__main__':
    cf = ClassFile.create('HelloWorld')

    main = cf.methods.create('main', '([Ljava/lang/String;)V', code=True)
    main.access_flags.acc_static = True
    main.code.max_locals = 1
    main.code.max_stack = 2

        ('getstatic', cf.constants.create_field_ref(
        ('ldc', cf.constants.create_string('Hello World!')),
        ('invokevirtual', cf.constants.create_method_ref(

    with open('HelloWorld.class', 'wb') as fout: