Generate QR Codes with Java
Java's ZXing (Zebra Crossing) library is the industry standard for barcode and QR code generation. Use it in Spring Boot, Android, or any Java application.
Installation
Add ZXing to your Java project using Maven or Gradle.
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.5.3</version>
</dependency>implementation 'com.google.zxing:core:3.5.3'
implementation 'com.google.zxing:javase:3.5.3'Generate QR Codes with ZXing
Code examples using the ZXing library in Java.
import com.google.zxing.*;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import java.nio.file.Path;
public class QRGenerator {
public static void main(String[] args) throws Exception {
BitMatrix matrix = new MultiFormatWriter().encode(
"https://qrcode.fun",
BarcodeFormat.QR_CODE, 300, 300
);
MatrixToImageWriter.writeToPath(matrix, "PNG", Path.of("qrcode.png"));
}
}import com.google.zxing.*;
import com.google.zxing.common.BitMatrix;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
public class CustomQR {
public static void main(String[] args) throws Exception {
BitMatrix matrix = new MultiFormatWriter().encode(
"https://qrcode.fun",
BarcodeFormat.QR_CODE, 300, 300
);
BufferedImage image = new BufferedImage(300, 300, BufferedImage.TYPE_INT_RGB);
int darkColor = 0xFF1A2B3C;
int lightColor = 0xFFFFFFFF;
for (int x = 0; x < 300; x++) {
for (int y = 0; y < 300; y++) {
image.setRGB(x, y, matrix.get(x, y) ? darkColor : lightColor);
}
}
ImageIO.write(image, "PNG", new File("qrcode_custom.png"));
}
}Generate QR Codes via API in Java
Call the QRCode.fun API from Java using HttpClient for styled QR codes.
import java.net.URI;
import java.net.http.*;
public class QRCodeAPI {
public static void main(String[] args) throws Exception {
String json = """
{
"data": "https://qrcode.fun",
"width": 300,
"height": 300,
"type": "png",
"margin": 10,
"dotsOptions": { "color": "#1A2B3C", "type": "rounded" },
"cornersSquareOptions": { "color": "#8564C3", "type": "extra-rounded" },
"backgroundOptions": { "color": "#FFFFFF" }
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qrcode.fun/api/generate-qr-styled"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body().substring(0, 100));
}
}Live QR Code Preview
Try generating a QR code with Java right now.
Native Library vs API
Compare using ZXing directly versus the QRCode.fun API.
| Feature | ZXing Library | QRCode.fun API |
|---|---|---|
| Setup complexity | Maven/Gradle dependency + BufferedImage | Single HTTP request |
| Customization | Size, error correction, margins | Full styling: colors, shapes, logos |
| Offline support | Yes | Requires internet |
| Maintenance | Update Maven/Gradle dependency | Always up-to-date |
| Output formats | PNG, JPG, BMP via ImageIO | PNG, SVG |
Java QR Code Use Cases
Common scenarios for QR codes in Java applications.
Enterprise Applications
Generate QR codes in Spring Boot APIs for invoices, receipts, and document tracking in enterprise systems.
Android Apps
Use ZXing in Android applications for QR code scanning and generation with camera integration.
Batch Processing
Create thousands of QR codes in batch jobs for product labels, shipping, and inventory management.
PDF Generation
Embed QR codes into PDF documents using iText or Apache PDFBox for reports and tickets.
Frequently Asked Questions
Common questions about generating QR codes with Java.
Start generating QR codes with Java
Use our free generator or integrate the API into your Java applications.