Free Cross-Platform Schematic Editor

Bernhard Walter, December 2006
a.k.a Heinz

Last Updated: 12. Mar. 2018

JSchem has a new home!

Key features are:

Please drop me a note if you have suggestions, find bugs or simply like JSchem.
My address is:

Library Update

JSchem can now perform a library update. Each time the program detects that a new release has been launched for the first time, it will automatically invoke the library update tool. This tool compares the library files on disk with the ones that come bundled with JSchem and presents a list of differences and how to deal with them.
You can choose the following actions to resolve conflicts:
JSchem checks the contents of the library and compiles a list with the following defaults:
If you simply press 'Ok' you will get an updated library without losing any of your private components. However, you may get a lot of backup files from the rename operation, even if you did not modify the files.
Therefore, it is highly recommended to check the list of differences for files that you actually modified. Leave these on 'Rename' and set all the others to 'Overwrite'. If you want to compare the old and new components you can select the file and press 'Compare...'
To change the scheduled action for files select them in the list and press the appropriate button on the right. The button 'Default' sets the action back to the default initially suggested.

If you do not want to deal with the library update now, you can simply press Cancel to abort the process. JSchem will not ask you to do it again until a new release is installed. However, you can invoke the library update tool at any time by choosing the menu entry 'Component->Library Update...'.


I have created the language support for English and German to the best of my abilities. Please send me a note if there are words or phrases that need to be changed.

I am still looking for volunteers to add support for other languages like Spanish, Italian or even Chinese. This is much easier than it may sound. All phrases (currently around 300) are contained within a translation bundle that can be edited with my translation editor in an hour or maybe less. As soon as the translation bundle is included in JSchem your name will appear in the About-box.
Here is a description of the process.

ExpressSCH Import

JSchem can read ExpressSCH (.sch) files.
Please note that .sch sheets including all components come out about 6% smaller in JSchem due to inch/mm conversion issues.
ExpressSCH uses a proprietary and encrypted file format. Writing .sch files will therefore not be implemented.

JSchem File Format

JSchem stores its data files with the suffix ".jsch". These files are actually ZIP archives that contain a single entry "schematics.xml". If you open a JSchem file with a zip-tool (e.g. by changing its extension to .zip), you can extract "schematics.xml" and view it with a text editor. The format is human readable and should not need further explanation.


You can help! JSchem now has a debug console that displays errors in detail. If an error occurs you will see a little red flag in the lower right corner of the window. Click it to open the debug console and send its contents to my PM or to:

Download & Installation

JSchem is written in Java and runs on all systems that have a Java Runtime Environment (JRE) 1.4 or newer. It has been tested on with Java 1.4, 5.0, 6.0 and the preview of 7.0.

Download and install a bundle according to your operating system:

Operating System Download OS Specific Installation Instructions
Windows JSchem.exe No installation required. Copy it to your preferred folder, use it and enjoy!
Mac OS JSchem.dmg Extract the JSchem application and copy it to your Applications folder. The Java runtime comes bundled with the application.
Linux/Unix JSchemUnix.bin Be sure you have a suitable 'java' in your PATH.
Make the program executable with the command 'chmod +x JSchemUnix.bin'
Any other OS JSchem.jar Run it with the command 'java -Xmx256m -jar JSchem.jar'
Sources Sources are available on Github The repository contains two NetBeans projects

There is no setup for JSchem. Simply store the application in your favorite location and create a shortcut to your dock/menu/desktop.
Make sure you have a Java Runtime Environment 1.8 or newer. If you need one you can get it from the Java website
When starting for the first time JSchem will create the directory ".jschem" in the user's home directory (Mac OS/Unix) or in My Documents\<Username> (Windows) and place the library and the initial settings there
If you want to play with JSchem you can download an archive containing the demo file of my 4W practice amp.

Note for Windows users: JSchem creates the file association .jsch every time it runs. If you move the application to a new installation directory, you have to run it once to update the file association to the new path. The file association of ExpressSCH files (.sch) will remain unchanged.


JSchem is free software, released under the GPL.
There are no license restrictions on files produced with JSchem. They are your property.

How to use JSchem

Please read this document. It will hopefully answer most of your questions.

Your Requests

The following featues were requested by users. I will investigate possible solutions as soon as I find the time. Please be patient.


2018-03-12Version 0.9.36Moved to a different web hoster
2010-06-26Version 0.9.36ExpressSCH importer bug
2009-12-11Version 0.9.35Windows Vista, paste bug, BOM
2008-11-17Version 0.9.34Bug in wire tool fixed
2008-11-16Version 0.9.33Bug in accelerator keys on Mac OS fixed
2008-11-16Version 0.9.32French translation
2008-09-07Version 0.9.31Finnish translation, pin outlines
2008-08-11Version 0.9.30Multi-document, library-tool, general overhaul
2007-11-02Version 0.9.22Improved performance for load/save/repaint, 'dirty' flag
2007-10-31Version 0.9.21Bug in library tool fixed
2007-10-29Version 0.9.20Wire/Pin attachment bug fixed, many new library components
2007-05-20Version 0.9.19Another snap grid problem fixed, .sch files associated on Mac OS
2007-05-20Version 0.9.18Snap grid problem fixed
2007-05-19Version 0.9.17Fixed a bug in wire tool
2007-05-18Version 0.9.16ExpressSCH import, performance and handling improvements
2007-02-12Version 0.9.15Snap grid guessing, several minor bug fixes
2007-01-08Version 0.9.14Smart junction dots
2007-01-08Version 0.9.13Selection movement with cursor keys
2007-01-05Version 0.9.12Line selection problem fixed
2007-01-05Version 0.9.11Polygon shapes, settings problem fixed
2007-01-04Version 0.9.10Grid problem on Macs, antialiasing
2007-01-04Version 0.9.9Easier handling for colors, more debug info in startup code
2007-01-02Version 0.9.8Improved drawing quality on Mac OS, filled arcs/rectangles, stacking
2006-12-30Version 0.9.7Mac app runs on PPC and x86, file type association on Mac and Windows (.jsch files double-clickable)
2006-12-29Version 0.9.6Fixed another selection problem, grid dot size, debug console
2006-12-28Version 0.9.5Flip object bodies (without texts), fixed selection problem, export wait dialog
2006-12-27Version 0.9.4OS bundles, memory problem solved
2006-12-26Version 0.9.3Library tool, component colors, 16/64 color picker
2006-12-25Version 0.9.2GIF export
2006-12-24Version 0.9.1User defined paper sizes, recent files in file menu
2006-12-23Version 0.9.0Initial release